import { type PacoteProvider } from "@nodesecure/tarball";
import { DefaultCollectableSet } from "@nodesecure/js-x-ray";
import { StatsCollector } from "./StatsCollector.class.ts";
import { TempDirectory } from "./TempDirectory.class.ts";
import { Logger } from "./logger.class.ts";
type CollectableMetadata = {
    spec?: string;
};
export interface ScanContext {
    name: string;
    version: string;
    ref: any;
    registry?: string;
    location?: string;
    isRootNode: boolean;
}
export interface TarballScannerOptions {
    tempDir: TempDirectory;
    statsCollector: StatsCollector;
    pacoteProvider?: PacoteProvider;
    collectables: DefaultCollectableSet<CollectableMetadata>[];
    maxConcurrency: number;
    logger: Logger;
    workers?: boolean | number;
}
export declare class TarballScanner {
    #private;
    constructor(options: TarballScannerOptions);
    scan(context: ScanContext): Promise<void>;
    [Symbol.asyncDispose](): Promise<void>;
}
export {};
//# sourceMappingURL=TarballScanner.class.d.ts.map