import type { EntityType, EntityMetaData, PhraseSpec } from '@formant/ava';
import type { PhraseDescriptor, BlockDescriptor, PluginType } from './plugin-protocol.type';
export declare class PluginManager {
    protected entities: Partial<Record<EntityType, PhraseDescriptor<EntityMetaData>>>;
    protected customPhrases: Record<string, PhraseDescriptor<any>>;
    protected customBlocks: Record<string, BlockDescriptor<any>>;
    constructor(plugins?: PluginType[]);
    register(plugin: PluginType): void;
    registerAll(plugins: PluginType[]): void;
    getEntityDescriptor(entityType: EntityType): PhraseDescriptor<EntityMetaData>;
    getCustomPhraseDescriptor(customType: string): PhraseDescriptor<any>;
    getBlockDescriptor(customType: string): BlockDescriptor<any>;
    getPhraseDescriptorBySpec(spec: PhraseSpec): null | PhraseDescriptor<any>;
}
