import type { Workspace } from '../../pm/index.ts';
import type { ApiExposureConfig, DeplintClassifier } from '../package/index.ts';
import type { PeerBoundType } from './packageJsonEditor.ts';
import type { DeplintWorkspaceContext } from './types.ts';
export interface DeplintContextPhases {
    findFilesMs: number;
    importsMs: number;
    packageMetaMs: number;
}
export interface BuildWorkspaceContextOptions {
    /** Config for the AEI classifier (`commands.apiExposure`), when `classifier` is `aei` or `aei-next`. */
    apiExposureConfig?: ApiExposureConfig;
    /** Dep-vs-peer classifier to attach to the context. Default: `legacy`. */
    classifier?: DeplintClassifier;
    exclude?: Set<string>;
    forceDeps?: Set<string>;
    forceDevs?: Set<string>;
    forcePeerOptional?: Map<string, boolean>;
    forcePeerWithDefault?: Set<string>;
    forcePeers?: Set<string>;
    peerRangeBound?: PeerBoundType;
    peerRangeForm?: 'broad' | 'shorthand';
    /** When provided, filled with phase timings for `--profile`. */
    phases?: DeplintContextPhases;
    sourceExclude?: string[];
    terminalOverride?: boolean;
    workspaceNames?: Set<string>;
}
export declare function buildWorkspaceContext(workspace: Workspace, options?: BuildWorkspaceContextOptions): DeplintWorkspaceContext;
//# sourceMappingURL=snapshot.d.ts.map