/* auto-generated by NAPI-RS */
/* eslint-disable */
export declare class AsyncPBox {
  generatePubkey(sk: Buffer): Promise<Buffer>
  calcDhsharedKey(pk: Buffer, sk: Buffer): Promise<Buffer>
}
export type JsAsyncPBox = AsyncPBox

export declare class AsyncSBoxCryptor {
  canStartUnderWorkLabel(workLabel: number): number
  open(c: Buffer, n: Buffer, k: Buffer, workLabel: number): Promise<Buffer>
  pack(m: Buffer, n: Buffer, k: Buffer, workLabel: number): Promise<Buffer>
  openFormatWN(c: Buffer, k: Buffer, workLabel: number): Promise<Buffer>
  packFormatWN(m: Buffer, n: Buffer, k: Buffer, workLabel: number): Promise<Buffer>
}
export type JsAsyncSBoxCryptor = AsyncSBoxCryptor

export declare class AsyncSigning {
  signature(m: Buffer, sk: Buffer): Promise<Buffer>
  verify(sig: Buffer, m: Buffer, pk: Buffer): Promise<boolean>
  generateKeypair(seed: Buffer): Promise<Keypair>
}
export type JsAsyncSigning = AsyncSigning

export declare class Cryptor {
  static makeTreaded(maxNumOfThreads: number, threadName: string): Cryptor
  get sbox(): AsyncSBoxCryptor
  get pbox(): AsyncPBox
  get signing(): AsyncSigning
  scrypt(passwd: Buffer, salt: Buffer, logN: number, r: number, p: number, dkLen: number, reportProgress: ((err: Error | null, arg: number) => any)): Promise<Buffer>
}
export type JsCryptor = Cryptor

export declare class Keypair {
  skey: Array<number>
  pkey: Array<number>
}
export type JsKeypair = Keypair

export declare function copyNonceFromFormatWN(c: Buffer): Buffer

export const PBOX_JWK_ALG_NAME: string

export const PBOX_KEY_LENGTH: number

export declare function plusFive(x: number): number

export const SBOX_JWK_ALG_NAME: string

export const SBOX_KEY_LENGTH: number

export const SBOX_NONCE_LENGTH: number

export const SBOX_POLY_LENGTH: number

export const SIGNING_JWK_ALG_NAME: string

export const SIGNING_PUBLIC_KEY_LENGTH: number

export const SIGNING_SECRET_KEY_LENGTH: number

export const SIGNING_SEED_LENGTH: number
