// TypeScript bindings for emscripten-generated code.  Automatically generated at compile time.
declare namespace RuntimeExports {
    /**
     * @param {string=} returnType
     * @param {Array=} argTypes
     * @param {Object=} opts
     */
    function cwrap(ident: any, returnType?: string | undefined, argTypes?: any[] | undefined, opts?: any | undefined): (...args: any[]) => any;
    /**
     * @param {string|null=} returnType
     * @param {Array=} argTypes
     * @param {Arguments|Array=} args
     * @param {Object=} opts
     */
    function ccall(ident: any, returnType?: (string | null) | undefined, argTypes?: any[] | undefined, args?: (Arguments | any[]) | undefined, opts?: any | undefined): any;
    /**
     * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the
     * emscripten HEAP, returns a copy of that string as a Javascript String object.
     *
     * @param {number} ptr
     * @param {number=} maxBytesToRead - An optional length that specifies the
     *   maximum number of bytes to read. You can omit this parameter to scan the
     *   string until the first 0 byte. If maxBytesToRead is passed, and the string
     *   at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the
     *   string will cut short at that byte index (i.e. maxBytesToRead will not
     *   produce a string of exact length [ptr, ptr+maxBytesToRead[) N.B. mixing
     *   frequent uses of UTF8ToString() with and without maxBytesToRead may throw
     *   JS JIT optimizations off, so it is worth to consider consistently using one
     * @return {string}
     */
    function UTF8ToString(ptr: number, maxBytesToRead?: number | undefined): string;
    /**
     * @param {number} ptr
     * @param {string} type
     */
    function getValue(ptr: number, type?: string): any;
    let HEAP16: any;
    let HEAP32: any;
}
interface WasmModule {
  _chromaprint_new(_0: number): number;
  _chromaprint_free(_0: number): void;
  _chromaprint_get_delay(_0: number): number;
  _chromaprint_get_delay_ms(_0: number): number;
  _chromaprint_start(_0: number, _1: number, _2: number): number;
  _chromaprint_feed(_0: number, _1: number, _2: number): number;
  _chromaprint_finish(_0: number): number;
  _chromaprint_get_fingerprint(_0: number, _1: number): number;
  _chromaprint_get_raw_fingerprint(_0: number, _1: number, _2: number): number;
  _chromaprint_get_raw_fingerprint_size(_0: number, _1: number): number;
  _chromaprint_clear_fingerprint(_0: number): number;
  _strdup(_0: number): number;
  _strndup(_0: number, _1: number): number;
  __ZdaPv(_0: number): void;
  __ZdaPvm(_0: number, _1: number): void;
  __ZdlPvm(_0: number, _1: number): void;
  __Znaj(_0: number): number;
  __ZnajSt11align_val_t(_0: number, _1: number): number;
  __Znwj(_0: number): number;
  __ZnwjSt11align_val_t(_0: number, _1: number): number;
  ___libc_calloc(_0: number, _1: number): number;
  ___libc_free(_0: number): void;
  ___libc_malloc(_0: number): number;
  ___libc_realloc(_0: number, _1: number): number;
  _emscripten_builtin_calloc(_0: number, _1: number): number;
  _emscripten_builtin_free(_0: number): void;
  _emscripten_builtin_malloc(_0: number): number;
  _emscripten_builtin_realloc(_0: number, _1: number): number;
  _free(_0: number): void;
  _malloc(_0: number): number;
  _malloc_size(_0: number): number;
  _malloc_usable_size(_0: number): number;
  _reallocf(_0: number, _1: number): number;
}

export type MainModule = WasmModule & typeof RuntimeExports;
export default function MainModuleFactory (options?: unknown): Promise<MainModule>;
