import type { ChatMessageEntry } from "./chat-message-renderer.ts";
import type { ChatTranscriptEntryLike } from "./chat-transcript.ts";
import type { CacheKeyPart, ChatSessionHostEntry } from "./chat-session-host-types.ts";
export declare const SPINNER_FRAMES: string[];
export declare const ANIMATION_FRAME_MS = 80;
export declare const STREAMING_RENDER_THROTTLE_MS = 80;
export declare function matchesKey(data: string, key: "enter" | "backspace" | "escape" | "ctrl+f" | "alt+up"): boolean;
export declare function parseBashInput(text: string): {
    command: string;
    excludeFromContext: boolean;
} | undefined;
export declare function cacheKey(parts: readonly CacheKeyPart[]): string;
export declare function isChatMessageEntry<TExtraEntry extends ChatTranscriptEntryLike>(entry: ChatSessionHostEntry<TExtraEntry>): entry is ChatMessageEntry;
export declare function isMessageLike(message: unknown): message is {
    role?: unknown;
    content?: unknown;
};
export declare function isUserMessageLike(message: unknown): message is {
    role: "user";
    content?: unknown;
};
export declare function userMessageSignature(text: string): string;
export declare function extractMessageText(content: unknown): string;
export declare function tailStreamingText(text: string): string;
export declare function spinnerFrame(): string;
export declare function stripAnsi(s: string): string;
export declare function errorMessage(error: unknown): string;
//# sourceMappingURL=chat-session-host-utils.d.ts.map