/**
 * PipelineContext — shared mutable state threaded through all build stages.
 *
 * Each stage reads what it needs and writes what it produces.
 * This replaces the closure-captured locals in the old monolithic buildGraph().
 */
import type { BetterSqlite3Database, BuildGraphOpts, CodegraphConfig, EngineOpts, ExtractorOutput, FileToParse, MetadataUpdate, NativeDatabase, NodeRow, ParseChange, PathAliases } from '../../../types.js';
export declare class PipelineContext {
    rootDir: string;
    db: BetterSqlite3Database;
    dbPath: string;
    config: CodegraphConfig;
    opts: BuildGraphOpts;
    engineOpts: EngineOpts;
    engineName: 'native' | 'wasm';
    engineVersion: string | null;
    aliases: PathAliases;
    incremental: boolean;
    forceFullRebuild: boolean;
    schemaVersion: number;
    nativeDb?: NativeDatabase;
    /** Whether native engine is available (deferred — DB opened only when needed). */
    nativeAvailable: boolean;
    /** True when ctx.db is a NativeDbProxy — single rusqlite connection for the entire pipeline. */
    nativeFirstProxy: boolean;
    allFiles: string[];
    discoveredDirs: Set<string>;
    isFullBuild: boolean;
    parseChanges: ParseChange[];
    metadataUpdates: MetadataUpdate[];
    removed: string[];
    earlyExit: boolean;
    allSymbols: Map<string, ExtractorOutput>;
    fileSymbols: Map<string, ExtractorOutput>;
    filesToParse: FileToParse[];
    batchResolved: Map<string, string> | null;
    reexportMap: Map<string, unknown[]>;
    barrelOnlyFiles: Set<string>;
    nodesByName: Map<string, NodeRow[]>;
    nodesByNameAndFile: Map<string, NodeRow[]>;
    /**
     * Edges from reverse-dep files to changed files, saved before purge so they
     * can be reconnected to new node IDs after insertNodes (#932, #933).
     * Eliminates the need to reparse reverse-dep files entirely.
     */
    savedReverseDepEdges: Array<{
        sourceId: number;
        tgtName: string;
        tgtKind: string;
        tgtFile: string;
        tgtLine: number;
        edgeKind: string;
        confidence: number;
        dynamic: number;
    }>;
    hasEmbeddings: boolean;
    lineCountMap: Map<string, number>;
    timing: {
        setupMs?: number;
        collectMs?: number;
        detectMs?: number;
        parseMs?: number;
        insertMs?: number;
        resolveMs?: number;
        edgesMs?: number;
        structureMs?: number;
        rolesMs?: number;
        astMs?: number;
        complexityMs?: number;
        cfgMs?: number;
        dataflowMs?: number;
        finalizeMs?: number;
        [key: string]: number | undefined;
    };
    buildStart: number;
}
//# sourceMappingURL=context.d.ts.map