import type { SessionProvider, DiscoverResult, ResolvedSession, SubagentFile, SessionSearchFilters, SessionSearchResponse } from "../../ports/SessionProvider.js";
import type { ParsedMessage } from "shared/types/index.js";
export declare class ClaudeCodeSessionProvider implements SessionProvider {
    readonly kind: "claude-code";
    /**
     * Find the session JSONL file directly on disk.
     * This must NOT call the shared findSessionLogPath utility, which
     * dispatches through all providers and would cause infinite recursion.
     */
    private _findLogPath;
    /**
     * Find all subagent JSONL files directly on disk.
     * Same rationale as _findLogPath — avoids provider-dispatch recursion.
     */
    private _findSubagentFiles;
    discoverSessions(opts: {
        limit: number;
        offset: number;
    }): DiscoverResult;
    /**
     * Primary discovery: uses `find` command for speed, stats all files,
     * sorts globally by mtime, then paginates.
     */
    private _discoverPaginated;
    /**
     * Fallback discovery: uses readdirSync when `find` command fails.
     */
    private _discoverFallback;
    resolveSession(sessionId: string): ResolvedSession | null;
    findSubagentFiles(sessionId: string): SubagentFile[];
    parseSessionMessages(sessionIds: string[]): ParsedMessage[];
    getSessionPreview(logPath: string, maxLength?: number): string | null;
    searchSessions(filters: SessionSearchFilters): SessionSearchResponse;
    /**
     * Fork a session at a message timestamp by writing a truncated copy of
     * the session JSONL under a new session ID. The Claude Agent SDK resumes
     * sessions by reading `<projectDir>/<sessionId>.jsonl`, so a truncated
     * copy with rewritten per-line `sessionId` fields is a fully resumable
     * session in its own right.
     */
    forkSession(sessionIds: string[], cutoffTimestamp: string, newSessionId: string): {
        logPath: string;
    } | null;
    deleteSessionFiles(sessionId: string): void;
}
//# sourceMappingURL=ClaudeCodeSessionProvider.d.ts.map