export declare function formatFileContentBlock(path: string, content: string): string; export declare function formatUserInputBlock(input: string, mode?: "act" | "plan" | "yolo"): string; export declare function formatUserCommandBlock(input: string, slash: string): string; /** * Recovers the agent mode a persisted user message was sent in from its * wrapper. Returns undefined when the input isn't * wrapped (plain text, user_command envelopes, older transcripts). */ export declare function parseUserInputMode(input?: string): "act" | "plan" | "yolo" | undefined; /** * Marks the exact point in the conversation where the user switched between * plan and act modes. Prepended to the first user message sent after the * switch. It survives normalizeUserInput (so the outbound sanitize in * prepareTurnInput delivers it to the model) and is hidden from transcript * display by stripModeNotices at display boundaries. */ export declare function formatModeSwitchNotice(from: "act" | "plan", to: "act" | "plan"): string; export type ModeSwitchNotice = { from: "act" | "plan"; to: "act" | "plan"; }; /** * Tracks a user-initiated mode switch so the next user message can carry a * marking it. Only UI toggles should be recorded: the * model-initiated switch_to_act_mode path already announces itself via the * continuation prompt. A round trip (plan -> act -> plan before sending * anything) cancels out, since the mode the model last saw never effectively * changed. */ export declare function createModeSwitchNoticeTracker(): { record(from: "act" | "plan", to: "act" | "plan"): void; consume(): ModeSwitchNotice | null; }; export type ModeSwitchNoticeTracker = ReturnType; export type UserCommandEnvelope = { slash: string; content: string; }; export declare function parseUserCommandEnvelope(input?: string): UserCommandEnvelope | undefined; export declare function normalizeUserInput(input?: string): string; /** * Removes runtime-generated elements (content included): they * are not user-typed text and must not render as such. Deliberately NOT part * of normalizeUserInput -- that function also sanitizes outbound prompts * before the host wraps them (prepareTurnInput), and stripping there deletes * the notice before the model ever sees it. */ export declare function stripModeNotices(input?: string): string; export declare function formatDisplayUserInput(input?: string): string; export declare function xmlTagsRemoval(input?: string, tag?: string): string;