import { CacheConsultant } from './CacheConsultant.ts';
import { type Workspace } from './ConfigurationChief.ts';
import type { GetSourceFile, HandleInput, RegisterCompiler, RegisterVisitor, WorkspaceConfiguration } from './types/config.ts';
import type { ConfigurationHint } from './types/issues.ts';
import type { PluginName } from './types/PluginNames.ts';
import type { PackageJson } from './types/package-json.ts';
import type { DependencySet } from './types/workspace.ts';
import type { MainOptions } from './util/create-options.ts';
import { type Input } from './util/input.ts';
type WorkspaceManagerOptions = {
    name: string;
    dir: string;
    config: WorkspaceConfiguration;
    manifest: PackageJson;
    dependencies: DependencySet;
    rootManifest: PackageJson | undefined;
    handleInput: HandleInput;
    findWorkspaceByFilePath: (filePath: string) => Workspace | undefined;
    getSourceFile: GetSourceFile;
    negatedWorkspacePatterns: string[];
    ignoredWorkspacePatterns: string[];
    enabledPluginsInAncestors: string[];
    configFilesMap: Map<string, Map<PluginName, Set<string>>>;
    options: MainOptions;
};
type CacheItem = {
    resolveConfig?: Input[];
    resolveFromAST?: Input[];
    configFile?: Input;
};
export declare class WorkspaceWorker {
    name: string;
    dir: string;
    config: WorkspaceConfiguration;
    manifest: PackageJson;
    rootManifest: PackageJson | undefined;
    dependencies: DependencySet;
    handleInput: HandleInput;
    findWorkspaceByFilePath: (filePath: string) => Workspace | undefined;
    getSourceFile: GetSourceFile;
    negatedWorkspacePatterns: string[];
    ignoredWorkspacePatterns: string[];
    options: MainOptions;
    enabledPluginsMap: Record<PluginName, boolean>;
    enabledPlugins: PluginName[];
    enabledPluginsInAncestors: string[];
    cache: CacheConsultant<CacheItem>;
    configFilesMap: Map<string, Map<PluginName, Set<string>>>;
    constructor({ name, dir, config, manifest, dependencies, rootManifest, negatedWorkspacePatterns, ignoredWorkspacePatterns, enabledPluginsInAncestors, handleInput, findWorkspaceByFilePath, getSourceFile, configFilesMap, options, }: WorkspaceManagerOptions);
    init(): Promise<void>;
    private determineEnabledPlugins;
    private getConfigForPlugin;
    getEntryFilePatterns(): string[];
    getProjectFilePatterns(projectFilePatterns: string[]): string[];
    getPluginProjectFilePatterns(patterns?: string[]): string[];
    private getPluginConfig;
    getPluginConfigPatterns(): string[];
    getPluginEntryFilePatterns(patterns: string[]): string[];
    getProductionEntryFilePatterns(negatedTestFilePatterns: string[]): string[];
    getProductionProjectFilePatterns(negatedTestFilePatterns: string[]): string[];
    private getConfigurationFilePatterns;
    registerCompilers(registerCompiler: RegisterCompiler): Promise<void>;
    registerVisitors(registerVisitors: RegisterVisitor): void;
    runPlugins(): Promise<Input[]>;
    private filterTransitiveDependencies;
    getConfigurationHints(type: 'entry' | 'project', patterns: string[], filePaths: string[], includedPaths: Set<string>): ConfigurationHint[];
    onDispose(): void;
}
export {};
