import type { ExtractionData, ExtractionNode } from '../contracts/types.js'; import { type ExtractionFileOutcome, type ExtractionFragment } from './extract/dispatch.js'; import { type ExtractionPipelineResult, type ExtractionStageObserver } from './extract/pipeline.js'; export { _makeId } from './extract/core.js'; export type { ExtractionFileDiagnostic, ExtractionPipelineResult, ExtractionStageDiagnostic, ExtractionStageObserver, } from './extract/pipeline.js'; export declare const EXTRACTOR_CACHE_VERSION = 68; interface CollectFilesOptions { followSymlinks?: boolean; } export declare function readCachedExtraction(filePath: string): ExtractionFragment | null; export declare function writeCachedExtraction(filePath: string, extraction: ExtractionFragment): void; export declare function collectFiles(root: string, options?: CollectFilesOptions): string[]; export declare function extractPython(filePath: string): ExtractionFragment; export declare function extractRuby(filePath: string): ExtractionFragment; export declare function extractLua(filePath: string): ExtractionFragment; export declare function extractElixir(filePath: string): ExtractionFragment; export declare function extractJulia(filePath: string): ExtractionFragment; export declare function extractPowerShell(filePath: string): ExtractionFragment; export declare function extractObjectiveC(filePath: string): ExtractionFragment; export declare function extractJs(filePath: string): ExtractionFragment; export interface ExtractOptions { allowedTargets?: Iterable; contextNodes?: ExtractionNode[]; /** Reuse corpus-wide file stems when this pass is merged with another one. */ fileStemByAbsolutePath?: ReadonlyMap; onFileOutcome?: (outcome: ExtractionFileOutcome) => void; /** Source-safe stage timing/count observer; never receives paths, labels, source, or snippets. */ onStageDiagnostic?: ExtractionStageObserver; } export declare function extract(files: string[]): ExtractionData; export declare function extract(files: string[], options: ExtractOptions): ExtractionData; export declare function extractWithPipelineResult(files: string[], options?: ExtractOptions): ExtractionPipelineResult;