import { PvModel } from '@picovoice/web-utils';
import { KoalaError } from './koala_errors';
export declare enum PvStatus {
    SUCCESS = 10000,
    OUT_OF_MEMORY = 10001,
    IO_ERROR = 10002,
    INVALID_ARGUMENT = 10003,
    STOP_ITERATION = 10004,
    KEY_ERROR = 10005,
    INVALID_STATE = 10006,
    RUNTIME_ERROR = 10007,
    ACTIVATION_ERROR = 10008,
    ACTIVATION_LIMIT_REACHED = 10009,
    ACTIVATION_THROTTLED = 10010,
    ACTIVATION_REFUSED = 10011
}
/**
 * KoalaModel types
 */
export type KoalaModel = PvModel;
export type KoalaOptions = {
    /** @defaultValue best */
    device?: string;
    /** @defaultValue undefined */
    processErrorCallback?: (error: KoalaError) => void;
};
export type KoalaWorkerInitRequest = {
    command: 'init';
    accessKey: string;
    modelPath: string;
    options: KoalaOptions;
    wasmSimd: string;
    wasmSimdLib: string;
    wasmPThread: string;
    wasmPThreadLib: string;
    sdk: string;
};
export type KoalaWorkerProcessRequest = {
    command: 'process';
    inputFrame: Int16Array;
};
export type KoalaWorkerResetRequest = {
    command: 'reset';
};
export type KoalaWorkerReleaseRequest = {
    command: 'release';
};
export type KoalaWorkerRequest = KoalaWorkerInitRequest | KoalaWorkerProcessRequest | KoalaWorkerResetRequest | KoalaWorkerReleaseRequest;
export type KoalaWorkerFailureResponse = {
    command: 'failed' | 'error';
    status: PvStatus;
    shortMessage: string;
    messageStack: string[];
};
export type KoalaWorkerInitResponse = KoalaWorkerFailureResponse | {
    command: 'ok';
    frameLength: number;
    sampleRate: number;
    version: string;
    delaySample: number;
};
export type KoalaWorkerProcessResponse = KoalaWorkerFailureResponse | {
    command: 'ok-process';
    enhancedPcm: Int16Array;
};
export type KoalaWorkerResetResponse = KoalaWorkerFailureResponse | {
    command: 'ok-reset';
};
export type KoalaWorkerReleaseResponse = KoalaWorkerFailureResponse | {
    command: 'ok';
};
export type KoalaWorkerResponse = KoalaWorkerInitResponse | KoalaWorkerProcessResponse | KoalaWorkerResetResponse | KoalaWorkerReleaseResponse;
//# sourceMappingURL=types.d.ts.map