/** * CW text to Morse timing encoder. * * Timing follows the ITU/PARIS convention: * - dit = 1200 / WPM ms * - dah = 3 dits * - intra-character gap = 1 dit * - character gap = 3 dits * - word gap = 7 dits */ export interface CWTimingEvent { type: 'key-down' | 'key-up'; /** Delay from the previous event, in milliseconds. */ afterMs: number; } export interface CWKeyStateSegment { /** true when the key/tone is closed, false for silence/open key. */ keyDown: boolean; /** Segment duration in milliseconds. */ durationMs: number; } /** * Encodes supported CW text into a sequence of timing events. */ export declare function encodeTextToCWEvents(text: string, wpm: number): CWTimingEvent[]; /** * Encodes supported CW text into key-down/silence duration segments. * This is the shared adapter input for browser sidetone and other local keying outputs. */ export declare function encodeTextToCWKeyStateSegments(text: string, wpm: number): CWKeyStateSegment[]; /** * Estimates total CW message duration from the first key-down to the final key-up. * Uses the PARIS timing base from Hamlib: dot milliseconds = 1200 / WPM. */ export declare function estimateCWMessageDurationMs(text: string, wpm: number): number; //# sourceMappingURL=cwTiming.d.ts.map