import { GuildAPIClient } from './api-client.js';
import { type ResponseStreamContent, SessionEvent, Session } from './session-events.js';
import type { DisplayMessage } from './display-message.js';
export type { DisplayMessage } from './display-message.js';
/**
 * Print a dimmed resume hint to stderr on session exit.
 * Only call when a session ID is available.
 */
export declare function printResumeHint(sessionId: string, command: string): void;
/**
 * Fetch all events for a session from the API.
 */
export declare function fetchSessionEvents(client: GuildAPIClient, sessionId: string): Promise<SessionEvent[]>;
/**
 * Fetch an existing session by ID.
 */
export declare function fetchSession(client: GuildAPIClient, sessionId: string): Promise<Session>;
export interface ResponseStreamResumeState {
    keys: Map<string, string>;
    contents: Map<string, ResponseStreamContent[]>;
    texts: Map<string, string>;
    timestamps: Map<string, string>;
    statuses: Map<string, ResponseStreamContent['status']>;
    keysByTask: Map<string, Set<string>>;
}
export interface SessionResumeDisplay {
    displayMessages: DisplayMessage[];
    responseStreamState: ResponseStreamResumeState;
}
export declare function responseStreamResumeStateFromEvents(events: SessionEvent[]): ResponseStreamResumeState;
export declare function prepareSessionResumeDisplay(events: SessionEvent[]): SessionResumeDisplay;
/**
 * Convert session events to display messages for resume.
 * Maps user_message, agent_notification_message, and agent_notification_error
 * to DisplayMessage objects. Skips progress, console, runtime events.
 */
export declare function eventsToDisplayMessages(events: SessionEvent[]): DisplayMessage[];
//# sourceMappingURL=session-resume.d.ts.map