/**
 * ASR Service for automatic speech recognition functionality
 */
import type { ApiInterface } from '../types/api';
import type { AsrModelConfig, AsrInitResult, AsrRecognizeResult } from '../types/interfaces';
/**
 * Service for Automatic Speech Recognition functionality
 */
export declare class AsrService {
    private initialized;
    private api;
    constructor(api: ApiInterface);
    /**
     * Initialize the ASR engine
     * @param config The ASR model configuration
     * @returns Promise resolving to initialization result
     */
    initialize(config: AsrModelConfig): Promise<AsrInitResult>;
    /**
     * Recognize speech from audio samples
     * @param sampleRate The sample rate of the audio
     * @param samples Float array of audio samples
     * @returns Promise resolving to recognition result
     */
    recognizeFromSamples(sampleRate: number, samples: number[]): Promise<AsrRecognizeResult>;
    /**
     * Recognize speech from an audio file
     * @param filePath Path to the audio file
     * @returns Promise resolving to recognition result
     */
    recognizeFromFile(filePath: string): Promise<AsrRecognizeResult>;
    /**
     * Create a persistent online stream for live streaming ASR.
     * Requires initAsr with streaming=true to have been called first.
     */
    createOnlineStream(): Promise<{
        success: boolean;
    }>;
    /**
     * Feed audio samples to the online stream and decode ready frames.
     */
    acceptWaveform(sampleRate: number, samples: number[]): Promise<{
        success: boolean;
    }>;
    /**
     * Check if an endpoint (sentence boundary) has been detected.
     */
    isEndpoint(): Promise<{
        isEndpoint: boolean;
    }>;
    /**
     * Get the current recognition result from the online stream.
     */
    getResult(): Promise<{
        text: string;
        tokens: string[];
        timestamps: number[];
    }>;
    /**
     * Signal end-of-input and drain ready frames before reading the final result.
     */
    finishInput(): Promise<{
        success: boolean;
        error?: string;
    }>;
    /**
     * Reset the online stream for the next utterance (after endpoint).
     */
    resetStream(): Promise<{
        success: boolean;
    }>;
    /**
     * Release ASR resources
     */
    release(): Promise<{
        released: boolean;
    }>;
}
//# sourceMappingURL=AsrService.d.ts.map