/**
 * Parameter validation ranges for user-facing API options.
 * These define the numeric input ranges for rate, pitch, and volume.
 * Conversion to SSML percentage strings is handled elsewhere (e.g., ssmlUtils.ts).
 */
export declare const PARAMETER_RANGES: Readonly<{
    rate: Readonly<{
        min: 0;
        max: 2;
        default: 1;
    }>;
    pitch: Readonly<{
        min: 0;
        max: 2;
        default: 1;
    }>;
    volume: Readonly<{
        min: 0;
        max: 2;
        default: 1;
    }>;
}>;
/**
 * Default voice to use if not specified by the user.
 * Using multilingual Emma as the default voice.
 */
export declare const DEFAULT_VOICE = "en-US-EmmaMultilingualNeural";
/**
 * Default timeout for speech operations (5000ms)
 */
export declare const DEFAULT_TIMEOUT = 5000;
/**
 * Maximum text length for speech input (1000 characters).
 * This is a client-side limit for the input string to the speak method.
 * The Edge TTS service itself handles further chunking based on byte length
 * and SSML overhead.
 */
export declare const MAX_TEXT_LENGTH = 1000;
/**
 * Edge TTS Trusted Client Token
 */
export declare const EDGE_TTS_TRUSTED_CLIENT_TOKEN = "6A5AA1D4EAFF4E9FB37E23D68491D6F4";
/**
 * Edge TTS WebSocket URL template with required query parameters
 * Includes all required authentication and connection parameters
 */
export declare const EDGE_TTS_WEBSOCKET_URL_TEMPLATE = "wss://speech.platform.bing.com/consumer/speech/synthesize/readaloud/edge/v1?TrustedClientToken=6A5AA1D4EAFF4E9FB37E23D68491D6F4&Sec-MS-GEC={secMsGec}&Sec-MS-GEC-Version={secMsGecVersion}&ConnectionId={connectionId}";
/**
 * Base URL for Edge TTS services
 */
export declare const EDGE_TTS_BASE_URL = "speech.platform.bing.com/consumer/speech/synthesize/readaloud";
/**
 * Chromium version for Sec-MS-GEC-Version header
 */
export declare const CHROMIUM_VERSION = "130.0.2849.68";
/**
 * SEC-MS-GEC version format template
 */
export declare const SEC_MS_GEC_VERSION = "1-130.0.2849.68";
/**
 * Edge TTS Voice List API endpoint
 */
export declare const EDGE_TTS_VOICE_LIST_URL = "https://speech.platform.bing.com/consumer/speech/synthesize/readaloud/voices/list?trustedclienttoken=6A5AA1D4EAFF4E9FB37E23D68491D6F4";
/**
 * Required WebSocket message headers
 */
export declare const WEBSOCKET_HEADERS: Readonly<{
    REQUEST_ID: "X-RequestId";
    TIMESTAMP: "X-Timestamp";
    CONTENT_TYPE: "Content-Type";
    PATH: "Path";
}>;
/**
 * Connection ID generation format
 * Note: this can be any random 32-character string. We choose to use UUIDv4 without dashes here.
 * Format: UUID v4 without dashes (32-character hexadecimal string)
 * Example: a1b2c3d4e5f67890abcdef1234567890
 */
export declare const CONNECTION_ID_FORMAT: Readonly<{
    TYPE: "UUID_V4_NO_DASHES";
    LENGTH: 32;
    FORMAT: "hex";
    DESCRIPTION: "Random UUID v4 without dashes used for connection tracking";
}>;
/**
 * WebSocket message paths
 */
export declare const MESSAGE_PATHS: Readonly<{
    SPEECH_CONFIG: "speech.config";
    SSML: "ssml";
    RESPONSE: "response";
    TURN_START: "turn.start";
    TURN_END: "turn.end";
    AUDIO_METADATA: "audio.metadata";
}>;
/**
 * Content types for WebSocket messages
 */
export declare const CONTENT_TYPES: Readonly<{
    JSON: "application/json; charset=utf-8";
    SSML: "application/ssml+xml";
}>;
/**
 * Default audio format for Edge TTS
 * This is the only format supported by Edge TTS for this endpoint.
 */
export declare const DEFAULT_AUDIO_FORMAT = "audio-24khz-48kbitrate-mono-mp3";
/**
 * Supported audio formats for Edge TTS
 * Edge TTS only supports MP3 at 24kHz 48kbps mono
 */
export declare const AUDIO_FORMATS: Readonly<{
    MP3_24KHZ_48KBPS: "audio-24khz-48kbitrate-mono-mp3";
}>;
/**
 * Edge TTS connection configuration
 */
export declare const EDGE_TTS_CONFIG: Readonly<{
    connectionTimeout: 10000;
    audioTimeout: 5000;
    maxRetries: 3;
    retryDelay: 1000;
    connectionPoolSize: 1;
    maxConcurrentConnections: 1;
    keepAliveInterval: 30000;
}>;
/**
 * Voice caching configuration
 */
export declare const VOICE_CACHING: Readonly<{
    VOICE_LIST_TTL: number;
    VOICE_LIST_REFRESH_INTERVAL: number;
    MAX_CACHE_SIZE: 1000;
    ENABLE_FALLBACK_CACHE: true;
}>;
/**
 * Timestamp format constants for Edge TTS WebSocket messages
 */
export declare const TIMESTAMP_FORMAT: Readonly<{
    REQUIRED_SUFFIX: "Z";
    MICROSECOND_PRECISION: true;
    MULTIPLIER: 1000000;
    EXAMPLE: "1234567890123456Z";
}>;
/**
 * Enhanced authentication constants from corrected protocol
 */
export declare const AUTHENTICATION: Readonly<{
    TRUSTED_CLIENT_TOKEN: "6A5AA1D4EAFF4E9FB37E23D68491D6F4";
    SEC_MS_GEC_VERSION_TEMPLATE: "1-{version}";
    CHROME_VERSION_CURRENT: "130.0.2849.68";
    CHROME_VERSION_EDGE_TESTED: "91.0.864.41";
    ORIGIN_EXTENSION: "chrome-extension://jdiccldimpdaibmpdkjnbmckianbfold";
}>;
/**
 * WebSocket message configuration
 */
export declare const WEBSOCKET_CONFIG: Readonly<{
    binaryType: BinaryType;
    protocols: never[];
    closeTimeout: 5000;
}>;
/**
 * Audio processing configuration
 */
export declare const AUDIO_CONFIG: Readonly<{
    defaultFormat: "audio-24khz-48kbitrate-mono-mp3";
    enableWordBoundary: true;
    enableSentenceBoundary: false;
    bufferSize: 4096;
    maxBufferSize: 65536;
    minBufferSize: 1024;
    streamingChunkSize: 8192;
    sampleRate: 24000;
    bitRate: 48000;
    channels: 1;
}>;
/**
 * Enhanced audio streaming and buffer management constants
 */
export declare const AUDIO_STREAMING: Readonly<{
    CHUNK_PROCESSING: {
        MIN_CHUNK_SIZE: number;
        MAX_CHUNK_SIZE: number;
        PREFERRED_CHUNK_SIZE: number;
        BUFFER_THRESHOLD: number;
    };
    PLAYBACK_BUFFER: {
        PRELOAD_SIZE: number;
        UNDERRUN_THRESHOLD: number;
        OVERRUN_PROTECTION: number;
    };
    STREAMING_TIMEOUT: {
        CHUNK_TIMEOUT: number;
        TOTAL_TIMEOUT: number;
        SILENCE_TIMEOUT: number;
    };
}>;
/**
 * Message formatting requirements
 */
export declare const MESSAGE_FORMAT: Readonly<{
    LINE_ENDING: "\r\n";
    HEADER_SEPARATOR: "\r\n\r\n";
    HEADER_VALUE_SEPARATOR: ":";
}>;
/**
 * Binary message structure constants
 */
export declare const BINARY_MESSAGE: Readonly<{
    HEADER_LENGTH_BYTES: 2;
    HEADER_LENGTH_TYPE: "Int16";
    AUDIO_FORMAT: "MP3";
}>;
/**
 * Enhanced binary message parsing constants with specific endianness details
 */
export declare const BINARY_MESSAGE_PARSING: Readonly<{
    HEADER: {
        LENGTH_BYTES: number;
        LENGTH_TYPE: string;
        ENDIANNESS: string;
        ENCODING: string;
    };
    AUDIO: {
        FORMAT: string;
        ENCODING: string;
        EXPECTED_MAGIC: number[];
    };
    VALIDATION: {
        MIN_HEADER_LENGTH: number;
        MAX_HEADER_LENGTH: number;
        MIN_AUDIO_LENGTH: number;
    };
}>;
/**
 * Message path validation constants
 */
export declare const MESSAGE_PATH_VALIDATION: Readonly<{
    VALID_PATHS: string[];
    REQUIRED_PATHS: string[];
    RESPONSE_PATHS: string[];
    PATH_SEPARATOR: ".";
}>;
/**
 * Content type validation constants
 */
export declare const CONTENT_TYPE_VALIDATION: Readonly<{
    VALID_TYPES: string[];
    CHARSET_REQUIRED: string[];
    DEFAULT_CHARSET: "utf-8";
}>;
/**
 * SSML namespace requirement
 */
export declare const SSML_NAMESPACE = "http://www.w3.org/2001/10/synthesis";
/**
 * Voice name format pattern for Microsoft Edge TTS
 * Format: "Microsoft Server Speech Text to Speech Voice (lang-region, NameNeural)"
 */
export declare const VOICE_NAME_FORMAT: Readonly<{
    PREFIX: "Microsoft Server Speech Text to Speech Voice";
    PATTERN: "Microsoft Server Speech Text to Speech Voice ({lang}-{region}, {name})";
    EXAMPLE: "Microsoft Server Speech Text to Speech Voice (en-US, AriaNeural)";
}>;
/**
 * Required WebSocket connection headers
 */
export declare const WSS_HEADERS: Readonly<{
    USER_AGENT: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0";
    ORIGIN: "chrome-extension://jdiccldimpdaibmpdkjnbmckianbfold";
    PRAGMA: "no-cache";
    CACHE_CONTROL: "no-cache";
    ACCEPT_ENCODING: "gzip, deflate, br";
    ACCEPT_LANGUAGE: "en-US,en;q=0.9";
}>;
/**
 * Enhanced connection lifecycle constants
 */
export declare const CONNECTION_LIFECYCLE: Readonly<{
    TIMEOUTS: {
        CONNECTION_ESTABLISHMENT: number;
        MESSAGE_RESPONSE: number;
        TOTAL_SYNTHESIS: number;
        TURN_END_WAIT: number;
        GRACEFUL_CLOSE: number;
    };
    RETRY_LIMITS: {
        CONNECTION_ATTEMPTS: number;
        AUTH_FAILURES: number;
        MESSAGE_RESENDS: number;
        CLOCK_SKEW_ADJUSTMENTS: number;
    };
    POOL_MANAGEMENT: {
        MAX_POOL_SIZE: number;
        CONNECTION_REUSE: boolean;
        IDLE_TIMEOUT: number;
        CLEANUP_INTERVAL: number;
    };
}>;
/**
 * Enhanced SSML validation and processing constants
 */
export declare const SSML_VALIDATION: Readonly<{
    REQUIRED_ATTRIBUTES: {
        SPEAK: string[];
        VOICE: string[];
    };
    NAMESPACE_VALIDATION: {
        REQUIRED_NAMESPACE: string;
        NAMESPACE_PREFIX: string;
        VALIDATION_REQUIRED: boolean;
    };
    PROSODY_RANGES: {
        RATE: {
            MIN_RELATIVE: number;
            MAX_RELATIVE: number;
            UNIT: string;
            RELATIVE_PATTERN: RegExp;
        };
        PITCH: {
            MIN_RELATIVE: number;
            MAX_RELATIVE: number;
            UNIT: string;
            RELATIVE_PATTERN: RegExp;
            HZ_PATTERN: RegExp;
        };
        VOLUME: {
            MIN_RELATIVE: number;
            MAX_RELATIVE: number;
            UNIT: string;
            RELATIVE_PATTERN: RegExp;
        };
    };
    TEXT_LIMITS: {
        MAX_SSML_LENGTH: number;
        MAX_VOICE_ELEMENTS: number;
        MAX_PROSODY_NESTING: number;
    };
}>;
/**
 * Sec-MS-GEC token generation constants
 */
export declare const SEC_MS_GEC_GENERATION: Readonly<{
    WIN_EPOCH: 11644473600;
    S_TO_NS: 1000000000;
    CLOCK_SKEW_MINUTES: 5;
    CLOCK_SKEW_SECONDS: 300;
    CLOCK_SKEW_TICKS: 3000000000;
    HASH_INPUT_FORMAT: "{ticks}MSEdgeSpeechTTS";
    HASH_ALGORITHM: "SHA-256";
    RESULT_FORMAT: "uppercase";
}>;
/**
 * Word boundary offset padding compensation
 * Used to compensate for Edge TTS service padding in word boundary events
 */
export declare const WORD_BOUNDARY_OFFSET_COMPENSATION = 8750000;
/**
 * Timing conversion constants for Edge TTS
 */
export declare const TIMING_CONVERSION: Readonly<{
    TICKS_PER_MILLISECOND: 10000;
    TICKS_PER_SECOND: 10000000;
    MS_TO_TICKS_MULTIPLIER: 10000;
    TICKS_TO_MS_DIVISOR: 10000;
}>;
/**
 * Edge TTS Exception types
 */
export declare const EDGE_TTS_EXCEPTIONS: Readonly<{
    NO_AUDIO_RECEIVED: "NoAudioReceived";
    UNEXPECTED_RESPONSE: "UnexpectedResponse";
    UNKNOWN_RESPONSE: "UnknownResponse";
    WEBSOCKET_ERROR: "WebSocketError";
    SKEW_ADJUSTMENT_ERROR: "SkewAdjustmentError";
}>;
/**
 * Enhanced error handling and diagnostic constants
 */
export declare const ERROR_HANDLING: Readonly<{
    EXCEPTION_CATEGORIES: {
        AUTHENTICATION: string[];
        NETWORK: string[];
        PROTOCOL: string[];
        AUDIO: string[];
    };
    RETRY_STRATEGIES: {
        AUTHENTICATION_ERRORS: {
            MAX_RETRIES: number;
            BACKOFF_MS: number[];
            RESET_TOKEN: boolean;
        };
        NETWORK_ERRORS: {
            MAX_RETRIES: number;
            BACKOFF_MS: number[];
            RESET_CONNECTION: boolean;
        };
        PROTOCOL_ERRORS: {
            MAX_RETRIES: number;
            BACKOFF_MS: number[];
            RESET_CONNECTION: boolean;
        };
    };
    DIAGNOSTIC_INFO: {
        INCLUDE_HEADERS: boolean;
        INCLUDE_TIMESTAMP: boolean;
        INCLUDE_CONNECTION_ID: boolean;
        TRUNCATE_LARGE_PAYLOADS: number;
    };
}>;
/**
 * Protocol compliance validation constants
 */
export declare const PROTOCOL_COMPLIANCE: Readonly<{
    WEBSOCKET_SUBPROTOCOLS: never[];
    REQUIRED_MESSAGE_HEADERS: string[];
    OPTIONAL_MESSAGE_HEADERS: string[];
    HEADER_VALIDATION: {
        REQUEST_ID_FORMAT: RegExp;
        TIMESTAMP_FORMAT: RegExp;
        CONTENT_TYPE_STRICT: boolean;
        PATH_CASE_SENSITIVE: boolean;
    };
    MESSAGE_ORDER: {
        REQUIRED_SEQUENCE: string[];
        EXPECTED_RESPONSES: string[];
        VALIDATE_ORDER: boolean;
    };
}>;
/**
 * Binary message parsing format constants
 */
export declare const BINARY_PARSING: Readonly<{
    HEADER_LENGTH_BYTES: 2;
    HEADER_ENCODING: "big";
    CONTENT_TYPE_AUDIO: "audio/mpeg";
    PATH_AUDIO: "audio";
}>;
//# sourceMappingURL=constants.d.ts.map