/** * Bridge so chrome outside the composer (status chips) can act on the draft * without holding a React ref to the textarea. */ type Handler = () => void; type DraftListener = (hasDraft: boolean) => void; type InsertHandler = (text: string) => void; export declare const composerActionPort: { /** Register the active composer's clear implementation. Returns unregister. */ registerClear(handler: Handler): () => void; /** Clear the composer draft if a handler is registered. */ clear(): void; /** Register copy-then-clear (Ctrl+Shift+X). Returns unregister. */ registerCut(handler: Handler): () => void; /** Copy the draft to the clipboard, then clear it. */ cut(): void; /** Register "show the slash-command list inside the composer". */ registerOpenCommands(handler: Handler): () => void; openCommands(): void; registerInsert(handler: InsertHandler): () => void; insert(text: string): boolean; /** Publish draft emptiness so status chrome can gate draft-only hints. */ setHasDraft(next: boolean): void; hasDraft(): boolean; subscribeDraft(listener: DraftListener): () => void; }; export {};