import { LeopardModel, LeopardOptions, LeopardTranscript } from './types';
export declare class LeopardWorker {
    private readonly _worker;
    private readonly _version;
    private readonly _sampleRate;
    private static _wasm;
    private static _wasmSimd;
    private static _sdk;
    private constructor();
    /**
     * Get Leopard engine version.
     */
    get version(): string;
    /**
     * Get sample rate.
     */
    get sampleRate(): number;
    /**
     * Get Leopard worker instance.
     */
    get worker(): Worker;
    /**
     * Set base64 wasm file.
     * @param wasm Base64'd wasm file to use to initialize wasm.
     */
    static setWasm(wasm: string): void;
    /**
     * Set base64 wasm file with SIMD feature.
     * @param wasmSimd Base64'd wasm file to use to initialize wasm.
     */
    static setWasmSimd(wasmSimd: string): void;
    static setSdk(sdk: string): void;
    /**
     * Creates a worker instance of the Picovoice Leopard Speech-to-Text engine.
     * Behind the scenes, it requires the WebAssembly code to load and initialize before
     * it can create an instance.
     *
     * @param accessKey AccessKey obtained from Picovoice Console (https://console.picovoice.ai/)
     * @param model Leopard model options.
     * @param model.base64 The model in base64 string to initialize Leopard.
     * @param model.publicPath The model path relative to the public directory.
     * @param model.customWritePath Custom path to save the model in storage.
     * Set to a different name to use multiple models across `leopard` instances.
     * @param model.forceWrite Flag to overwrite the model in storage even if it exists.
     * @param model.version Version of the model file. Increment to update the model file in storage.
     * @param options Optional arguments.
     * @param options.enableAutomaticPunctuation Flag to enable automatic punctuation insertion.
     * @param options.enableDiarization Flag to enable speaker diarization, which allows Leopard to differentiate speakers
     * as part of the transcription process. Word metadata will include a `speakerTag` to identify unique speakers.
     *
     * @returns An instance of LeopardWorker.
     */
    static create(accessKey: string, model: LeopardModel, options?: LeopardOptions): Promise<LeopardWorker>;
    /**
     * Processes audio in a worker. The required sample rate can be retrieved from '.sampleRate'.
     * The audio needs to be 16-bit linearly-encoded. Furthermore, the engine operates on single-channel audio.
     *
     * @param pcm Frame of audio with properties described above.
     * @param options Optional process arguments.
     * @param options.transfer Flag to indicate if the buffer should be transferred or not. If set to true,
     * input buffer array will be transferred to the worker.
     * @param options.transferCallback Optional callback containing a new Int16Array with contents from 'pcm'. Use this callback
     * to get the input pcm when using transfer.
     *
     * @return A transcript object.
     */
    process(pcm: Int16Array, options?: {
        transfer?: boolean;
        transferCallback?: (data: Int16Array) => void;
    }): Promise<LeopardTranscript>;
    /**
     * Releases resources acquired by WebAssembly module.
     */
    release(): Promise<void>;
    /**
     * Terminates the active worker. Stops all requests being handled by worker.
     */
    terminate(): void;
}
//# sourceMappingURL=leopard_worker.d.ts.map