export type AssistantStreamUpdate = {
    workspaceId: string;
    sessionId: string;
    text: string;
    done: boolean | undefined;
};
export type AssistantStreamBufferServiceOptions = {
    renderIntervalMs: number;
    canApply: (update: AssistantStreamUpdate) => boolean;
    apply: (update: AssistantStreamUpdate) => void;
};
/**
 * Coalesces rapid terminal assistant stream updates so Ink renders the newest
 * cumulative text instead of replaying stale partial chunks.
 */
export declare class AssistantStreamBufferService {
    private readonly options;
    private pendingUpdate?;
    private flushTimer?;
    private lastAppliedAt;
    constructor(options: AssistantStreamBufferServiceOptions);
    push(update: AssistantStreamUpdate): void;
    flush(): void;
    reset(): void;
    dispose(): void;
    private shouldApplyNow;
    private scheduleFlush;
    private clearPendingFlush;
    private apply;
}
//# sourceMappingURL=assistant-stream-buffer-service.d.ts.map