export interface StreamBuffer {
    output: string;
    thinking: string;
}
export interface StreamProjectionBlock {
    output?: string;
    thinking?: string;
}
export interface StreamProjection {
    output?: string;
    thinking?: string;
    tasks?: Record<string, StreamProjectionBlock>;
}
export interface ConversationEntryLike {
    type?: string;
    content?: string;
    thinking?: string;
    taskId?: string | null;
    toolName?: string;
    toolArgs?: Record<string, unknown>;
}
export type StreamProjectionSource = 'none' | 'snapshot' | 'replay' | 'hydration' | 'live';
export interface NormalizedStreamProjection {
    output: string;
    thinking: string;
    tasks: Record<string, StreamBuffer>;
}
export declare function normalizeStreamProjection(projection: StreamProjection | null | undefined): NormalizedStreamProjection;
export declare function buildProjectionFromEntries(entries: ConversationEntryLike[]): NormalizedStreamProjection;
export declare function shouldReplaceStreamProjection(currentSource: StreamProjectionSource, nextSource: Exclude<StreamProjectionSource, 'live'>): boolean;
//# sourceMappingURL=hub-overlay-state.d.ts.map