import { Config } from '@backstage/config';
import { ScannedPluginPackage } from './types';
import { LoggerService } from '@backstage/backend-plugin-api';
export interface DynamicPluginScannerOptions {
    config: Config;
    backstageRoot: string;
    logger: LoggerService;
    preferAlpha?: boolean;
}
export interface ScanRootResponse {
    packages: ScannedPluginPackage[];
}
export declare class PluginScanner {
    private readonly config;
    private readonly logger;
    private readonly backstageRoot;
    private readonly preferAlpha;
    private _rootDirectory?;
    private configUnsubscribe?;
    private rootDirectoryWatcher?;
    private subscribers;
    private constructor();
    static create(options: DynamicPluginScannerOptions): PluginScanner;
    subscribeToRootDirectoryChange(subscriber: () => void): void;
    get rootDirectory(): string | undefined;
    private applyConfig;
    scanRoot(): Promise<ScanRootResponse>;
    private scanDir;
    trackChanges(): Promise<void>;
    untrackChanges(): Promise<void>;
    destructor(): void;
}
