import { WebSocket } from 'ws';
import { type ActiveSubagentSummary, type ChatEntry } from './render';
export interface TuiClientOptions {
    /** Daemon base URL, e.g. http://127.0.0.1:4300 */
    baseUrl?: string;
    /** Optional model id to send with every chat request. */
    model?: string;
    /** Use ANSI colour escape codes. Defaults to whether stdout is a TTY. */
    useColor?: boolean;
    /** Override fetch (mainly for tests). */
    fetchImpl?: typeof fetch;
    /** Override WebSocket constructor (mainly for tests). */
    webSocketImpl?: typeof WebSocket;
    /** Override stdin stream (mainly for tests). */
    stdin?: NodeJS.ReadableStream;
    /** Override stdout stream (mainly for tests). */
    stdout?: NodeJS.WritableStream;
}
export interface TuiClient {
    /** Returns the current chat transcript snapshot. */
    getTranscript(): ChatEntry[];
    /** Returns the current active sub-agents snapshot. */
    getActiveSubagents(): ActiveSubagentSummary[];
    /** Push a chat message and stream the response. Resolves when the assistant turn finishes. */
    send(message: string): Promise<void>;
    /** Re-render the current screen. Useful after external state changes. */
    render(): void;
    /** Stop readline + close the WebSocket. */
    stop(): Promise<void>;
}
export declare function createTuiClient(options?: TuiClientOptions): TuiClient;
//# sourceMappingURL=client.d.ts.map