import type { KnowledgeGraph } from '../contracts/graph.js'; import { type CompareTimeTravelGraphsOptions, type TimeTravelResult } from '../runtime/time-travel.js'; import { type GenerateGraphOptions, type GenerateGraphResult } from './generate.js'; type MaybePromise = T | Promise; export interface SnapshotRequest { ref: string; refresh?: boolean; } export interface TimeTravelSnapshot { ref: string; commitSha: string; graphPath: string; reportPath: string | null; fromCache: boolean; } export interface SnapshotGitDependencies { resolveRef?: (ref: string) => MaybePromise; createDetachedWorktree?: (worktreePath: string, commitSha: string) => MaybePromise; removeWorktree?: (worktreePath: string) => MaybePromise; } export interface SnapshotDependencies { rootDir?: string; git?: SnapshotGitDependencies; generateGraph?: (rootPath: string, options: GenerateGraphOptions) => MaybePromise>; loadGraphExtractorVersion?: (graphPath: string) => number | null; } export interface CompareRefsInput extends Omit { fromRef: string; toRef: string; refresh?: boolean; } export interface CompareRefsDependencies extends SnapshotDependencies { loadGraph?: (graphPath: string) => KnowledgeGraph; compareTimeTravelGraphs?: (beforeGraph: KnowledgeGraph, afterGraph: KnowledgeGraph, options?: CompareTimeTravelGraphsOptions) => TimeTravelResult; } export declare function loadOrBuildSnapshot(input: SnapshotRequest, dependencies?: SnapshotDependencies): Promise; export declare function compareRefs(input: CompareRefsInput, dependencies?: CompareRefsDependencies): Promise; export {};