import { RateLimitDetector } from '../../rateLimit'; /** True while a claude-tui turn is running for the given workspace root. */ export declare function isClaudeTuiBusy(root: string): boolean; /** Returns the epoch-ms timestamp of the last streaming update for the root, or 0 if none. */ export declare function getClaudeTuiLastActivity(root: string): number; /** * Force-clears the busy flag for a root whose turn appears hung * (no activity for a long time). Call only after an inactivity timeout. */ export declare function forceIdleClaudeTui(root: string): void; export declare function getClaudeTuiLatestSessionId(root: string): string | undefined; /** * Steer the live Claude TUI session mid-turn by injecting a user message * straight into the running process's stdin. * * The persistent client runs `claude --input-format stream-json * --include-partial-messages`, which accepts additional user messages while a * turn is in flight — the CLI folds them into the current turn as steering * (exactly like typing while Claude is working). We bypass the structured * `send()` (which would queue the text as a *separate* next turn) and call the * raw client's `sendMessage()` so the text lands in the turn already running. * * Returns true if the message was injected into a live session; false when * there is no live client for this root (caller should fall back to queuing). */ export declare function steerClaudeTui(root: string, text: string, log: (msg: string) => void): Promise; /** Cleanly shut down the persistent client when the task loop stops. */ export declare function closeClaudeTuiClient(root: string, log: (msg: string) => void): void; /** Kill all open TUI clients — called on extension deactivate to avoid orphaned processes. */ export declare function closeAllClaudeTuiClients(): void; export declare function sendClaudeTuiPrompt(root: string, /** Absolute path to the combined agent-profile + message file. */ promptFilePath: string, resolvedSessionId: string | undefined, stdoutFile: string, exitFile: string, log: (msg: string) => void, model?: string, /** Optional callback invoked once to reveal the output panel to the user. */ showOutput?: () => void): void; export declare function runClaudeTuiCompact(root: string, sessionId: string, log: (msg: string) => void): Promise; export declare function runClaudeTuiClear(root: string, sessionId: string, log: (msg: string) => void): Promise; export declare function detectTuiRateLimit(stdoutContent: string): ReturnType;