import type { VoiceCapabilities, VoiceProviderConfig } from "@dev-anywhere/shared"; import type { StoredVoiceConfig } from "./config-store.js"; import type { VoiceConfigTestResult } from "./config-test.js"; export type VoiceProviderId = VoiceProviderConfig["provider"]; export interface VoiceAsrProviderClient { on(event: "ready", handler: () => void): this; on(event: "partial" | "final", handler: (text: string) => void): this; on(event: "error", handler: (error: Error) => void): this; on(event: "closed", handler: (code?: number, reason?: string) => void): this; sendPcm(chunk: Buffer): void; stop(): void; close(): void; } export interface VoiceTtsProviderClient { on(event: "started" | "finished", handler: () => void): this; on(event: "audio", handler: (chunk: Buffer) => void): this; on(event: "error", handler: (error: Error) => void): this; on(event: "closed", handler: (code?: number, reason?: string) => void): this; speak(text: string): void; close(): void; } export interface VoiceAsrProviderOptions { sampleRate: number; language: string; } export interface VoiceTtsProviderOptions { sampleRate: number; } export interface VoiceProviderAdapter { id: VoiceProviderId; createAsrClient: (config: StoredVoiceConfig, options: VoiceAsrProviderOptions) => VoiceAsrProviderClient; createTtsClient: (config: StoredVoiceConfig, options: VoiceTtsProviderOptions) => VoiceTtsProviderClient; readCapabilities: (config: StoredVoiceConfig) => Promise; testConfig: (config: StoredVoiceConfig) => Promise; } export interface VoiceProviderRegistry { current: (config: StoredVoiceConfig) => VoiceProviderAdapter; require: (providerId: string) => VoiceProviderAdapter; } export declare function createVoiceProviderRegistry(adapters: readonly VoiceProviderAdapter[]): VoiceProviderRegistry; //# sourceMappingURL=provider.d.ts.map