import type { NativeChat } from './harness-native-selection.js'; export interface NativeTextInputActions { captureInsertion(): { start: number; end: number; draftRev: number; }; insertText(text: string, span: { start: number; end: number; draftRev: number; }): boolean; persistDraft(): void; } /** Insertion is revision guarded, never setDraft/submit; even a selected draft is preserved. */ export declare function insertNativeQuote(actions: NativeTextInputActions, text: string, sender: string): void; export declare function nativeTextNode(chat: NativeChat, key: string): { text: string; eventSeq: number | undefined; settled: boolean; isMe: boolean; time: number; } | undefined; /** Narrow compatibility boundary. Unknown bodies fail closed, not a replacement renderer. */ export declare function nativeTextRows(doc: Document, chat: NativeChat): { row: HTMLElement; key: string; node: { text: string; eventSeq: number | undefined; settled: boolean; isMe: boolean; time: number; }; prose: HTMLElement[]; }[]; export declare function observeNativeTextTargets(doc: Document, chat: NativeChat, sourceRef: string): () => void; //# sourceMappingURL=harness-text-selection.d.ts.map