import { Dependency, DependencyDefinition, DependencyOptions } from "./Dependency";
export declare class DependencyManager {
    private beautifierName;
    private dependencyDefinitions;
    private options;
    private static registry;
    static clearRegistry(): void;
    constructor(beautifierName: string, dependencyDefinitions?: DependencyDefinition[], options?: LanguageDependencyOptions);
    load(): Promise<boolean>;
    private initializeDependencies;
    has(name: string): boolean;
    get<T extends Dependency>(dependencyName: string): T;
    private optionsForDependency;
    protected readonly registry: DependencyRegistry[string];
    protected createDependency(definition: DependencyDefinition, options: DependencyOptions): Dependency;
    private keyForOptions;
}
export interface LanguageDependencyOptions {
    [dependencyName: string]: DependencyOptions;
}
export interface DependencyRegistry {
    [beautifierName: string]: {
        [dependencyName: string]: {
            [optionsKey: string]: Dependency;
        };
    };
}
