import { ZebraModel } from './types';
export declare class ZebraWorker {
    private readonly _worker;
    private readonly _maxCharacterLimit;
    private readonly _version;
    private static _wasmSimd;
    private static _wasmSimdLib;
    private static _wasmPThread;
    private static _wasmPThreadLib;
    private static _sdk;
    private constructor();
    /**
     * Maximum number of characters that can be translated at once.
     */
    get maxCharacterLimit(): number;
    /**
     * Get Zebra engine version.
     */
    get version(): string;
    /**
     * Get Zebra worker instance.
     */
    get worker(): Worker;
    /**
     * Set base64 wasm file with SIMD feature.
     * @param wasmSimd Base64'd wasm SIMD file to use to initialize wasm.
     */
    static setWasmSimd(wasmSimd: string): void;
    /**
     * Set base64 wasm file with SIMD feature in text format.
     * @param wasmSimdLib Base64'd wasm SIMD file in text format.
     */
    static setWasmSimdLib(wasmSimdLib: string): void;
    /**
     * Set base64 wasm file with SIMD and pthread feature.
     * @param wasmPThread Base64'd wasm file to use to initialize wasm.
     */
    static setWasmPThread(wasmPThread: string): void;
    /**
     * Set base64 SIMD and thread wasm file in text format.
     * @param wasmPThreadLib Base64'd wasm file in text format.
     */
    static setWasmPThreadLib(wasmPThreadLib: string): void;
    static setSdk(sdk: string): void;
    /**
     * Creates a worker instance of the Picovoice Zebra Translate 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 Zebra model options. The model sets the source and target translation languages.
     * @param model.base64 The model in base64 string to initialize Zebra.
     * @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 `zebra` 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 device String representation of the device (e.g., CPU or GPU) to use. If set to `best`, the most
     * suitable device is selected automatically. If set to `gpu`, the engine uses the first available GPU device. To select a specific
     * GPU device, set this argument to `gpu:${GPU_INDEX}`, where `${GPU_INDEX}` is the index of the target GPU. If set to
     * `cpu`, the engine will run on the CPU with the default number of threads. To specify the number of threads, set this
     * argument to `cpu:${NUM_THREADS}`, where `${NUM_THREADS}` is the desired number of threads.
     *
     * @returns An instance of ZebraWorker.
     */
    static create(accessKey: string, model: ZebraModel, device?: string): Promise<ZebraWorker>;
    /**
     * Translates text. The maximum number of characters that can be translated at once
     * is given by `.maxCharacterLimit`.
     *
     * @param text Text to translate.
     * @return Translated text.
     */
    translate(text: string): Promise<string>;
    /**
     * Releases resources acquired by WebAssembly module.
     */
    release(): Promise<void>;
    /**
     * Terminates the active worker. Stops all requests being handled by worker.
     */
    terminate(): void;
}
//# sourceMappingURL=zebra_worker.d.ts.map