import * as ortInstance from "onnxruntime-web"; import { FrameProcessor, FrameProcessorOptions, Message, OrtOptions, SpeechProbabilities } from "./common"; type RealTimeDetectionCallbacks = { onFrameProcessed: (data: FrameData) => any; onMisfire: () => any; onSpeechStart: () => any; onSpeechEnd: (audio: Float32Array) => any; onFFTProcessed: (fftData: Float32Array) => any; fftSize: number; }; type AudioConstraints = Omit; type AssetOptions = { workletURL: string; modelURL: string; modelFetcher: (path: string) => Promise; }; type RealTimeDetectionOptionsWithoutStream = { additionalAudioConstraints?: AudioConstraints; stream: undefined; } & FrameProcessorOptions & RealTimeDetectionCallbacks & OrtOptions & AssetOptions; type RealTimeDetectionOptionsWithStream = { stream: MediaStream; } & FrameProcessorOptions & RealTimeDetectionCallbacks & OrtOptions & AssetOptions; export declare const ort: typeof ortInstance; export type RealTimeDetectionOptions = RealTimeDetectionOptionsWithStream | RealTimeDetectionOptionsWithoutStream; type FrameData = { probabilities: SpeechProbabilities; fftData: Float32Array; }; export declare const defaultRealTimeDetectionOptions: RealTimeDetectionOptions; export declare class Detect { options: RealTimeDetectionOptions; private audioContext; private stream; private audioNodeDetection; private sourceNode; analyserNode: AnalyserNode; listening: boolean; static new(options?: Partial): Promise; private constructor(); pause: () => void; start: () => void; destroy: () => void; } export declare class AudioNodeDetection { ctx: AudioContext; options: RealTimeDetectionOptions; private frameProcessor; private entryNode; private analyserNode; static new(ctx: AudioContext, options: Partial | undefined, analyserNode: AnalyserNode): Promise; private isProcessing; constructor(ctx: AudioContext, options: RealTimeDetectionOptions, frameProcessor: FrameProcessor, entryNode: AudioWorkletNode, analyserNode: AnalyserNode); pause: () => void; start: () => void; receive: (node: AudioNode) => void; processFrame: (frame: Float32Array) => Promise; handleFrameProcessorEvent: (ev: Partial<{ probs: SpeechProbabilities; msg: Message; audio: Float32Array; }>) => void; private processFFT; destroy: () => void; } export {};