import type { AssistantMessage } from "@pk-nerdsaver-ai/pi-ai";
import type { AssistantMessageComponent } from "../components/assistant-message";
export declare const STREAMING_REVEAL_FRAME_MS: number;
export declare const MIN_STEP = 3;
export declare const CATCHUP_FRAMES = 8;
type StreamingRevealComponent = Pick<AssistantMessageComponent, "updateContent">;
type StreamingRevealControllerOptions = {
    getSmoothStreaming(): boolean;
    getHideThinkingBlock(): boolean;
    requestRender(): void;
};
export declare function visibleUnits(message: AssistantMessage, hideThinking: boolean): number;
export declare function buildDisplayMessage(target: AssistantMessage, revealed: number, hideThinking: boolean, countOf?: (index: number, text: string) => number): AssistantMessage;
export declare function nextStep(backlog: number): number;
export declare class StreamingRevealController {
    #private;
    constructor(options: StreamingRevealControllerOptions);
    begin(component: StreamingRevealComponent, message: AssistantMessage): void;
    setTarget(message: AssistantMessage): void;
    stop(): void;
}
export {};
