/** Vertical slide past this many px (upward) arms cancel-on-release. */ export declare const SLIDE_CANCEL_PX = 60; /** Horizontal slide past this many px (leftward) latches locked recording. */ export declare const SLIDE_LOCK_PX = 80; export interface VoiceGestureHost { /** Begin recording. Resolves true iff recording actually started. */ start(): Promise; /** Finalize the recording → pre-send preview. */ stop(): void; /** Discard the recording. */ cancel(): void; /** True while a recording is active (perm granted, not yet finalized). */ isRecording(): boolean; /** Reflect lock state: swap the chip's slide-hint for Stop/Cancel controls. */ onLockChange(locked: boolean): void; /** Reflect will-cancel state: red chip + "release to cancel" hint. */ onWillCancelChange(willCancel: boolean): void; } export interface VoiceGesture { readonly locked: boolean; readonly willCancel: boolean; /** Finalize a locked recording (Stop button). */ stopLocked(): void; /** Cancel a locked recording (Cancel button). */ cancelLocked(): void; /** Remove all listeners. */ destroy(): void; } export declare function createVoiceGesture(micBtn: HTMLElement, host: VoiceGestureHost): VoiceGesture; //# sourceMappingURL=voice-gesture.d.ts.map