/* tslint:disable */
/* eslint-disable */
/**
* @returns {number}
*/
export function getMinVerificationVersion(): number;
/**
* @returns {number}
*/
export function getMaxVerificationVersion(): number;
/**
*/
export function main_js(): void;
/**
* The primary entry point for verifying a request and response pair. This will verify the response
* with respect to the request, according the [Response Verification Spec]().
* @param {Request} request
* @param {Response} response
* @param {Uint8Array} canister_id
* @param {bigint} current_time_ns
* @param {bigint} max_cert_time_offset_ns
* @param {Uint8Array} ic_public_key
* @param {number} min_requested_verification_version
* @returns {VerificationInfo}
*/
export function verifyRequestResponsePair(request: Request, response: Response, canister_id: Uint8Array, current_time_ns: bigint, max_cert_time_offset_ns: bigint, ic_public_key: Uint8Array, min_requested_verification_version: number): VerificationInfo;
/**
* JS Representation of the ResponseVerificationError code
*/
export enum ResponseVerificationErrorCode {
/**
* Error converting UTF-8 string
*/
  IoError = 0,
/**
* An unsupported verification version was requested
*/
  UnsupportedVerificationVersion = 1,
/**
* Mismatch between the minimum requested version and the actual requested version
*/
  RequestedVerificationVersionMismatch = 2,
/**
* Error parsing CEL expression
*/
  CelError = 3,
/**
* Error decoding base64
*/
  Base64DecodingError = 4,
/**
* Error parsing int
*/
  ParseIntError = 5,
/**
* The tree has different root hash from the expected value in the certified variables
*/
  InvalidTree = 6,
/**
* The CEL expression path is invalid
*/
  InvalidExpressionPath = 7,
/**
* The response body was a mismatch from the expected values in the tree
*/
  InvalidResponseBody = 8,
/**
* The response hashes were a mismatch from the expected values in the tree
*/
  InvalidResponseHashes = 9,
/**
* The certificate was missing from the certification header
*/
  MissingCertificate = 10,
/**
* The tree was missing from the certification header
*/
  MissingTree = 11,
/**
* The certificate expression path was missing from the certification header
*/
  MissingCertificateExpressionPath = 12,
/**
* The certificate expression was missing from the response headers
*/
  MissingCertificateExpression = 13,
/**
* The certification values could not be found in the response headers
*/
  MissingCertification = 14,
/**
* Failed to decode CBOR
*/
  CborDecodingFailed = 15,
/**
* Failed to verify certificate
*/
  CertificateVerificationFailed = 16,
/**
* HTTP Certification error
*/
  HttpCertificationError = 17,
}

interface Request {
    method: String;
    url: String;
    headers: [string, string][];
    body: Uint8Array;
}



interface Response {
    statusCode: number;
    headers: [string, string][];
    body: Uint8Array;
}



interface VerifiedResponse {
    statusCode?: number;
    headers: [string, string][];
    body: Uint8Array;
}


/**
* JS Representation of the ResponseVerificationError
*/
export class ResponseVerificationError {
/**
** Return copy of self without private attributes.
*/
  toJSON(): Object;
/**
* Return stringified version of self.
*/
  toString(): string;
  free(): void;
/**
* Error code as an enum
*/
  readonly code: number;
/**
* Stringified error message
*/
  readonly message: string;
}
