import { type ExtractionMode, type GenerationPolicy, type GenerationPolicyV2 } from '../contracts/generation-policy.js'; import type { IndexingStrictThresholds } from '../contracts/indexing.js'; export interface BuildGenerationPolicyOptions { directed?: boolean; /** * `auto` uses SPI where it has a source-language capability and otherwise * falls back to the legacy extractor. Explicit modes stay strict. */ extractionMode?: ExtractionMode; /** @deprecated Use `extractionMode`. Retained for programmatic callers. */ useSpi?: boolean; respectGitignore?: boolean; followSymlinks?: boolean; includeDocs?: boolean; indexingStrict?: IndexingStrictThresholds; } export interface StoredPolicyGenerationOptions { directed: boolean; extractionMode: ExtractionMode; respectGitignore: boolean; followSymlinks: boolean; includeDocs: boolean; indexingStrict?: IndexingStrictThresholds; } /** * Preserve explicit compatibility settings while making auto the shared * default for both CLI and programmatic generation. */ export declare function resolveExtractionMode(options: Pick): ExtractionMode; export declare function exclusionRulesFingerprint(rootPath: string, respectGitignore: boolean, gitVisibleFiles: readonly string[] | null): string; export declare function buildGenerationPolicy(rootPath: string, options: BuildGenerationPolicyOptions, extractorCacheVersion: number, gitVisibleFiles: readonly string[] | null): GenerationPolicyV2; export declare function generationOptionsFromPolicy(policy: GenerationPolicy): StoredPolicyGenerationOptions; export declare function readGraphGenerationPolicy(graphPath: string): GenerationPolicy | null; export declare function readStoredGenerationPolicy(graphPath: string, manifestPath?: string): GenerationPolicy | null;