import { SessionLocator } from "../runtime/session/session-locator.js";
import type { SessionListEntry } from "../runtime/session/session-types.js";
export interface SessionWorkspaceHost {
    getActiveProjectRoot(): string;
}
export interface ThreadListItem {
    id: string;
    title?: string;
    status: "active";
    turnCount: number;
    createdAt?: string;
    lastActiveAt?: string;
}
export declare class SessionQueryService {
    private readonly locator;
    private readonly pathService;
    constructor(locator?: SessionLocator, pathService?: import("../runtime/ports/path-service.js").PathService);
    getActiveProjectId(): string;
    getDefaultProjectId(): string;
    getProjectWorkspaceDir(projectId: string): string;
    resolveWorkspaceDir(sessionId: string, projectId?: string): string;
    listThreads(limit: number, projectId?: string): Promise<ThreadListItem[]>;
    getHostSessionWorkspaceDirs(host: SessionWorkspaceHost, excludedDirs?: string[]): string[];
    listHostWorkspaceSessions(host: SessionWorkspaceHost, limit: number, excludedDirs?: string[]): Promise<SessionListEntry[]>;
    resolveSessionWorkspaceDir(host: SessionWorkspaceHost, sessionId: string, projectId?: string): string;
}
export declare function safeSessionId(sessionId: string): string;
