/** * Tell the operator something happened, without disturbing the session. * * While Claude is running it owns the screen, so anything printed normally is * either scribbled over or corrupts the interface. Terminals accept a * notification request as an escape sequence instead: the terminal shows it * however it likes (a toast, a bell, a taskbar flash) and the sequence itself * draws nothing, so Claude's display is untouched. * * Best effort by nature. A terminal that does not understand the sequence * ignores it silently, which is exactly the desired behaviour. */ /** Mark the terminal as owned (or not) by a program ccx is running. */ export declare function setTerminalOwnedElsewhere(owned: boolean): void; export interface NotifyOptions { /** Where to write; defaults to the real terminal. */ stream?: { write(chunk: string): boolean; } | undefined; /** Set false to stay completely silent. */ enabled?: boolean; } /** * Ask the terminal to show `message`. Uses OSC 9, which Windows Terminal and * iTerm2 surface as a notification and other terminals ignore. */ export declare function notifyTerminal(message: string, options?: NotifyOptions): void; /** * Put `message` in the terminal's title bar. Claude sets the title too, so this * is a hint rather than a guarantee; harmless where it does not stick. */ export declare function setTerminalTitle(message: string, options?: NotifyOptions): void; /** Announce an account switch through every quiet channel available. */ export declare function notifyAccountSwitch(account: string, reason: string, options?: NotifyOptions): void;