import { type Theme } from '@mariozechner/pi-coding-agent';
interface Component {
    render(width: number): string[];
    handleInput?(data: string): void;
    invalidate(): void;
}
interface Focusable {
    focused: boolean;
}
interface TUIRef {
    requestRender(): void;
}
interface HubOverlayOptions {
    baseUrl: string;
    currentSessionId?: string;
    initialSessionId?: string;
    startInDetail?: boolean;
    done: (result: undefined) => void;
}
export declare class HubOverlay implements Component, Focusable {
    focused: boolean;
    private readonly tui;
    private readonly theme;
    private readonly done;
    private readonly baseUrl;
    private readonly currentSessionId?;
    private screen;
    private selectedIndex;
    private detailSessionId;
    private detailScrollOffset;
    private detailMaxScroll;
    private feedScrollOffset;
    private feedMaxScroll;
    private feedScope;
    private feedViewMode;
    private showFeedThinking;
    private feedFollowing;
    private taskScrollOffset;
    private taskMaxScroll;
    private selectedTaskIndex;
    private showTaskThinking;
    private taskFollowing;
    private sessions;
    private detail;
    private cachedTodos;
    private feed;
    private sessionFeed;
    private sessionHistoryFeed;
    private sessionBuffers;
    private taskBuffers;
    private streamSources;
    private replayLoadedSessions;
    private replayInFlight;
    private replayRequestControllers;
    private replayRequestGenerations;
    private replayFailureUntil;
    private eventHistoryLoadedSessions;
    private eventHistoryInFlight;
    private eventHistoryRequestControllers;
    private eventHistoryRequestGenerations;
    private eventHistoryFailureUntil;
    private previousDigests;
    private loadingList;
    private loadingDetail;
    private listError;
    private detailError;
    private detailTodoRequestId;
    private resumeBusySessionId;
    private lastUpdatedAt;
    private listInFlight;
    private detailInFlight;
    private sseControllers;
    private disposed;
    private pollTimer;
    private mdRenderer;
    constructor(tui: TUIRef, theme: Theme, options: HubOverlayOptions);
    handleInput(data: string): void;
    render(width: number): string[];
    invalidate(): void;
    dispose(): void;
    private requestRender;
    private nextRequestGeneration;
    private invalidateSessionRequest;
    private isCurrentSessionRequest;
    private isFailureCoolingDown;
    private markFailureCooldown;
    private clearReplayFailureCooldown;
    private clearEventHistoryFailureCooldown;
    private resetHistoricalSessionState;
    private close;
    private handleListInput;
    private isSessionContext;
    private handleDetailInput;
    private handleFeedInput;
    private handleTaskInput;
    private getDetailTasks;
    private getSessionBuffer;
    private getTaskBuffer;
    private getStreamSource;
    private setStreamSource;
    private clearTaskBuffers;
    private replaceStreamProjection;
    private applyReplayEntries;
    private appendBufferText;
    private renderMarkdownLines;
    private renderStreamLines;
    private buildTopTabs;
    private fetchJson;
    private getSessionSummary;
    private isRuntimeAvailable;
    private isHistoryOnly;
    private canResumeSession;
    private isArchivedStatus;
    private getStatusTone;
    private getConnectionState;
    private formatTagSummary;
    private getSessionEventEntries;
    private refreshTodos;
    private refreshList;
    private refreshDetail;
    private refreshReplay;
    private formatHistoryEventLine;
    private refreshEventHistory;
    private resumeSession;
    private updateFeedFromList;
    private syncSseStreams;
    private startSseStream;
    private consumeSseBuffer;
    private handleSseEvent;
    private applyHydration;
    private captureStreamContent;
    private formatEventFeedLine;
    private getSessionLabel;
    private getFeedEntries;
    private pushFeed;
    private pushSessionFeed;
    private formatStreamLine;
    private getTaskFeedKey;
    private renderListScreen;
    private renderDetailScreen;
    private renderFeedScreen;
    private renderTaskScreen;
    private contentLine;
}
export {};
//# sourceMappingURL=hub-overlay.d.ts.map