/** A spec that was active during a session. */
export interface SessionActiveSpec {
    specId: string;
    status: string;
    summary: string;
}
/** A decision made during a session. */
export interface SessionDecision {
    timestamp: string;
    decision: string;
    rationale: string;
    specId?: string;
}
/** A file touched during a session. */
export interface SessionFile {
    path: string;
    action: 'created' | 'modified' | 'deleted';
}
/** A persisted session snapshot. */
export interface Session {
    id: string;
    projectId: string;
    startedAt: string;
    lastSavedAt: string;
    activeSpecs: SessionActiveSpec[];
    decisions: SessionDecision[];
    modifiedFiles: SessionFile[];
    contextSummary: string;
    toolCallCount: number;
    metadata: Record<string, unknown>;
}
/** Diff between two sessions. */
export interface SessionDiff {
    newSpecs: SessionActiveSpec[];
    completedSpecs: SessionActiveSpec[];
    newDecisions: SessionDecision[];
    fileChanges: SessionFile[];
}
/** Cross-conversation memory of decisions. */
export interface SessionMemory {
    projectId: string;
    decisions: SessionDecision[];
    updatedAt: string;
}
/** Lightweight session info for list views. */
export interface SessionListItem {
    id: string;
    startedAt: string;
    lastSavedAt: string;
    contextSummary: string;
    toolCallCount: number;
}
/** Input for restore_session tool. */
export interface RestoreSessionInput {
    projectPath: string;
    sessionId?: string;
    /** PR number to resume session from (auto-linked when PR created inside Claude Code). */
    fromPr?: number;
}
/** Input for list_sessions tool. */
export interface ListSessionsInput {
    projectPath: string;
    limit?: number;
}
/** Input for export_session tool. */
export interface ExportSessionInput {
    projectPath: string;
    sessionId?: string;
    format?: 'markdown' | 'json';
}
/** Data shape for the formatAsMarkdown function parameter. */
export interface SessionExportData {
    id: string;
    projectId: string;
    startedAt: string;
    lastSavedAt: string;
    contextSummary: string;
    activeSpecs: SessionActiveSpec[];
    decisions: SessionDecision[];
    modifiedFiles: SessionFile[];
    toolCallCount: number;
    metadata: Record<string, unknown>;
}
//# sourceMappingURL=session.d.ts.map