import { type SessionInfo, type SessionListProgress } from '../app/session/session-catalog.js';
export interface RemoteSessionSummary {
    path: string;
    id: string;
    cwd: string;
    name?: string;
    parentSessionPath?: string;
    createdAt: string;
    modifiedAt: string;
    messageCount: number;
    firstMessage: string;
    lastMessage: string;
    isCurrent: boolean;
}
export type ResolveTargetResult = {
    kind: 'attach';
    session: RemoteSessionSummary;
} | {
    kind: 'picker';
    reason: 'ambiguous';
    sessions: RemoteSessionSummary[];
} | {
    kind: 'create';
} | {
    kind: 'not_found';
    requestedSessionId: string;
};
export interface ResolveTargetOptions {
    requestedSessionId?: string;
    requestedSessionPath?: string;
    currentSessionPath?: string;
}
export interface RemoteSessionRegistryOptions {
    listSessions?: (onProgress?: SessionListProgress) => Promise<SessionInfo[]>;
}
export declare class RemoteSessionRegistry {
    private readonly listSessionsImpl;
    constructor(options?: RemoteSessionRegistryOptions);
    listSessions(currentSessionPath?: string): Promise<RemoteSessionSummary[]>;
    resolveTarget(options?: ResolveTargetOptions): Promise<ResolveTargetResult>;
}
//# sourceMappingURL=session-registry.d.ts.map