/**
 * Voice and Speech Type Definitions for NeuroLink
 *
 * Core voice types: capabilities, provider config, audio utilities,
 * events, and provider abstractions.
 *
 * STT types are in ./stt.ts
 * Realtime types are in ./realtime.ts
 * TTS types are in ./tts.ts
 *
 * @module types/voice
 */
// Re-export all TTS types
export * from "./tts.js";
// Re-export all STT types
export * from "./stt.js";
// Re-export all Realtime types
export * from "./realtime.js";
// ============================================================================
// ERROR CODES
// ============================================================================
/**
 * Voice error codes (general)
 */
export const VOICE_ERROR_CODES = {
    PROVIDER_NOT_FOUND: "VOICE_PROVIDER_NOT_FOUND",
    INVALID_CONFIGURATION: "VOICE_INVALID_CONFIGURATION",
    INITIALIZATION_FAILED: "VOICE_INITIALIZATION_FAILED",
    OPERATION_CANCELLED: "VOICE_OPERATION_CANCELLED",
    // General
    PROVIDER_NOT_CONFIGURED: "VOICE_PROVIDER_NOT_CONFIGURED",
    PROVIDER_NOT_SUPPORTED: "VOICE_PROVIDER_NOT_SUPPORTED",
    FEATURE_NOT_SUPPORTED: "VOICE_FEATURE_NOT_SUPPORTED",
    // TTS specific
    TTS_EMPTY_TEXT: "VOICE_TTS_EMPTY_TEXT",
    TTS_TEXT_TOO_LONG: "VOICE_TTS_TEXT_TOO_LONG",
    TTS_SYNTHESIS_FAILED: "VOICE_TTS_SYNTHESIS_FAILED",
    // STT specific
    STT_EMPTY_AUDIO: "VOICE_STT_EMPTY_AUDIO",
    STT_INVALID_FORMAT: "VOICE_STT_INVALID_FORMAT",
    STT_TRANSCRIPTION_FAILED: "VOICE_STT_TRANSCRIPTION_FAILED",
    // Realtime specific
    REALTIME_CONNECTION_FAILED: "VOICE_REALTIME_CONNECTION_FAILED",
    REALTIME_SESSION_ERROR: "VOICE_REALTIME_SESSION_ERROR",
    // Network
    NETWORK_ERROR: "VOICE_NETWORK_ERROR",
    TIMEOUT: "VOICE_TIMEOUT",
};
// ============================================================================
// CONSTANTS
// ============================================================================
/**
 * Supported audio formats with details
 */
export const AUDIO_FORMAT_DETAILS = {
    mp3: {
        format: "mp3",
        mimeType: "audio/mpeg",
        extension: ".mp3",
        supportsStreaming: true,
        sampleRates: [8000, 16000, 22050, 24000, 44100, 48000],
        bitDepths: [16],
    },
    wav: {
        format: "wav",
        mimeType: "audio/wav",
        extension: ".wav",
        supportsStreaming: false,
        sampleRates: [8000, 16000, 22050, 24000, 44100, 48000],
        bitDepths: [8, 16, 24, 32],
    },
    ogg: {
        format: "ogg",
        mimeType: "audio/ogg",
        extension: ".ogg",
        supportsStreaming: true,
        sampleRates: [8000, 16000, 22050, 24000, 44100, 48000],
        bitDepths: [16],
    },
    opus: {
        format: "opus",
        mimeType: "audio/opus",
        extension: ".opus",
        supportsStreaming: true,
        sampleRates: [8000, 12000, 16000, 24000, 48000],
        bitDepths: [16],
    },
    m4a: {
        format: "m4a",
        mimeType: "audio/mp4",
        extension: ".m4a",
        supportsStreaming: false,
        sampleRates: [44100, 48000],
        bitDepths: [16],
    },
    flac: {
        format: "flac",
        mimeType: "audio/flac",
        extension: ".flac",
        supportsStreaming: false,
        sampleRates: [44100, 48000, 96000],
        bitDepths: [16, 24],
    },
    webm: {
        format: "webm",
        mimeType: "audio/webm",
        extension: ".webm",
        supportsStreaming: true,
        sampleRates: [44100, 48000],
        bitDepths: [16],
    },
    mp4: {
        format: "mp4",
        mimeType: "audio/mp4",
        extension: ".mp4",
        supportsStreaming: false,
        sampleRates: [44100, 48000],
        bitDepths: [16],
    },
    mpeg: {
        format: "mpeg",
        mimeType: "audio/mpeg",
        extension: ".mpeg",
        supportsStreaming: true,
        sampleRates: [8000, 16000, 22050, 24000, 44100, 48000],
        bitDepths: [16],
    },
    mpga: {
        format: "mpga",
        mimeType: "audio/mpeg",
        extension: ".mpga",
        supportsStreaming: true,
        sampleRates: [8000, 16000, 22050, 24000, 44100, 48000],
        bitDepths: [16],
    },
};
//# sourceMappingURL=voice.js.map