import { Store } from './store.js';
import { MapxGraph } from './graph.js';
import { Config } from './config.js';
import { ProgressCallback, ScanResult } from '../types.js';
import './store-interface.js';
import '../languages/registry.js';

declare function buildMatcher(excludes: string[], includes: string[]): (rel: string) => boolean;
declare class Scanner {
    private store;
    private config;
    private graph;
    private onProgress?;
    private concurrency;
    private aborted;
    private cliExcludes;
    private cliIncludes;
    private workspaceFileMap;
    private dartPackageMap;
    constructor(store: Store, config: Config, graph: MapxGraph, onProgress?: ProgressCallback, options?: {
        excludes?: string[];
        includes?: string[];
    });
    abort(): void;
    private loadResumeState;
    private saveResumeState;
    private clearResumeState;
    private getLockPath;
    private acquireScanLock;
    private releaseScanLock;
    scanFull(repoNames?: string[], options?: {
        force?: boolean;
    }): Promise<ScanResult>;
    private _scanFullForRepo;
    scanIncremental(repoNames?: string[]): Promise<ScanResult>;
    private _scanIncrementalForRepo;
    private discoverFiles;
    private detectDeletedFiles;
    private parseFilesParallel;
    private parseWithWorkers;
    private parseOnMainThread;
    private writeParseResult;
    private writeParseResultWithMap;
    private resolveReferences;
    private resolveReferencesWithMap;
    private resolveRequirePath;
    private resolveImportPath;
    /**
     * Discovers Dart packages by walking the workspace for pubspec.yaml files
     * and extracting the `name:` field. Populates `dartPackageMap` with
     * `packageName → relative/path/to/lib/` mappings.
     */
    private discoverDartPackages;
    private resolveSymbolToFile;
    private shouldExcludeDir;
    private getFileInfo;
    private scanFrameworkRoutesAndHooks;
}

export { Scanner, buildMatcher };
