import { EntityMetaData, EntityType, PhraseSpec } from '@antv/narrative-text-schema';
import { 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): PhraseDescriptor<EntityMetaData>;
}
