import type { AgentSessionEvent } from "../../../core/agent-session.ts";
import { type Component, type Focusable } from "@earendil-works/pi-tui";
import type { ChatTranscriptEntryLike } from "./chat-transcript.ts";
import type { AgentSnapshotMessage, ChatSessionHostEntry, ChatSessionHostOpts } from "./chat-session-host-types.ts";
export type { ChatSessionHostBashRequest, ChatSessionHostCommands, ChatSessionHostEntry, ChatSessionHostOpts, ChatSessionHostStyle, } from "./chat-session-host-types.ts";
export declare class ChatSessionHost<TExtraEntry extends ChatTranscriptEntryLike = never> implements Component, Focusable {
    focused: boolean;
    private readonly state;
    constructor(opts: ChatSessionHostOpts<TExtraEntry>);
    appendMessages(messages: readonly AgentSnapshotMessage[]): void;
    loadSessionFile(sessionFile: string | undefined): void;
    appendExtraEntry(entry: TExtraEntry): void;
    entries(): readonly ChatSessionHostEntry<TExtraEntry>[];
    applyAgentEvent(event: AgentSessionEvent): boolean;
    render(width: number): string[];
    invalidate(): void;
    renderBody(width: number, budget: number): string[];
    renderPendingMessages(width: number): string[];
    renderWorkingStatus(width: number): string[];
    renderUsage(width: number): string[];
    renderEditor(width: number): string[];
    renderFooter(width: number): string[];
    handleScrollInput(data: string): boolean;
    handleInput(data: string): boolean;
    interrupt(): Promise<void>;
    submit(mode?: "auto" | "followUp", submittedText?: string): Promise<void>;
    isStreaming(): boolean;
    isBashRunning(): boolean;
    isEditingBashCommand(): boolean;
    isCompacting(): boolean;
    hasInputText(): boolean;
    hasAnimationTick(): boolean;
    bodyScrollFromBottom(): number;
    bodyMaxScroll(): number;
    inputText(): string;
    statusText(): string;
    scrollToBottom(): void;
    syncAnimationTick(): void;
    clearBusyForTerminalWorkflowStage(): void;
    dispose(): void;
    restoreQueuedMessagesToEditor(): boolean;
    private editorCallbacks;
}
//# sourceMappingURL=chat-session-host.d.ts.map