import type { Designer } from '../designer';
import type { ComponentMetadata } from './meta';
export declare enum COMPONENT_META_EVENT {
    CHANGE = "componentMeta:metadata.change"
}
export declare class ComponentMeta {
    readonly designer: Designer;
    readonly isComponentMeta = true;
    private emitter;
    private _componentName?;
    get componentName(): string;
    private _isContainer?;
    get isContainer(): boolean;
    private _isMinimalRenderUnit?;
    get isMinimalRenderUnit(): boolean;
    private _descriptor?;
    get descriptor(): string | undefined;
    private _metadata?;
    get configure(): import("./meta").FieldConfig[];
    private _title?;
    get title(): string;
    get icon(): string | undefined;
    get advanced(): import("./meta").Advanced;
    get snippets(): import("./meta").Snippet[];
    constructor(designer: Designer, metadata: ComponentMetadata);
    private parseMetadata;
    refreshMetadata(): void;
    setMetadata(metadata: ComponentMetadata): void;
    getMetadata(): ComponentMetadata;
    onMetadataChange(fn: (args: any) => void): () => void;
}
export declare function isComponentMeta(obj: any): obj is ComponentMeta;
