import { type ExtractionResult } from "./canvas-graph.js"; /** Stable no-follow metadata over the workflow's bounded admitted sources. */ export declare function fingerprintWorkflowSources(root: string): Promise; export interface CachedExtraction { result: ExtractionResult; /** True when the result came from cache — no child process ran. */ cached: boolean; /** The source fingerprint the result corresponds to — the same value the * enrichment cache stores as `sourceFingerprint`, so freshness checks * compare like with like. */ fingerprint: string; } export interface CachedExtractionOptions { /** * Revalidates provenance in the same continuation that starts a cache-miss * extractor. It intentionally does not run for a cache hit: returning an * already-derived process-local value launches no project code. */ authorizeBeforeLaunch?: () => boolean | Promise; /** Test/lifecycle hook immediately before the final authorization check. */ beforeLaunchAuthorization?: () => void | Promise; } /** A cache miss whose launch proof expired is cancellation, not extraction * failure. Callers use this to avoid writing a misleading error render. */ export declare class ExtractionLaunchCancelledError extends Error { constructor(); } /** * `extractWorkflowGraph` behind the fingerprint cache. The `extract` * parameter exists for tests only (inject a spy to prove hit/miss behavior). */ export declare function extractWorkflowGraphCached(sourceDir: string, extract?: (dir: string) => Promise, options?: CachedExtractionOptions): Promise; /** Drops one workflow's cached extraction — the visualize macro's force * refresh, which must re-run the child process even for unchanged sources. */ export declare function invalidateExtractionCache(sourceDir: string): void; /** Test hook — the cache is module-level state shared across a process. */ export declare function clearExtractionCache(): void; //# sourceMappingURL=canvas-cache.d.ts.map