export interface UseSpeechRecognitionOptions {
    /** Emit live, non-final partials via the `onInterim` callback passed to start(). */
    interim?: boolean;
}
export interface SpeechRecognitionStartOptions {
    /** BCP-47 language tag, e.g. `en-US`. */
    lang?: string;
    /** Called with each interim (non-final) transcript when `interim` is enabled. */
    onInterim?: (text: string) => void;
}
/**
 * Wrap the browser's Web Speech `SpeechRecognition` (Chrome/Safari; no Firefox).
 * Mirrors `useVoiceRecorder`'s shape: an `isListening` signal, an `error` signal,
 * and `start`/`stop` controls. `start()` resolves with the final transcript when
 * recognition ends; `stop()` ends the in-progress session (resolving start()).
 *
 * Caveat (documented at the element): in Chrome this is cloud-based — audio is
 * sent to Google — so it is "native to the browser," not on-device/private.
 */
export declare function useSpeechRecognition(options?: UseSpeechRecognitionOptions): {
    isSupported: boolean;
    isListening: import('solid-js').Accessor<boolean>;
    error: import('solid-js').Accessor<string | null>;
    start: (opts?: SpeechRecognitionStartOptions) => Promise<string>;
    stop: () => void;
};
