import { DynamicItemLoader, DynamicItemSource } from '@anglr/dynamic';
import { LayoutComponentDef } from '@anglr/dynamic/layout';
import { Logger } from '@anglr/common';
import { Dictionary } from '@jscrpt/common';
import { LayoutEditorMetadataDescriptor } from '../../decorators';
import * as i0 from "@angular/core";
/**
 * Class used for extracting layout editor metadata
 */
export declare class LayoutEditorMetadataExtractor {
    protected _loader: DynamicItemLoader<LayoutComponentDef>;
    protected _logger?: Logger | undefined;
    /**
     * Cache for layout editor metadata
     */
    protected _cache: Dictionary<LayoutEditorMetadataDescriptor>;
    constructor(_loader: DynamicItemLoader<LayoutComponentDef>, _logger?: Logger | undefined);
    /**
     * Extracts layout editor metadata from layout metadata
     * @param metadata - Metadata describing type that contains metadata
     */
    extractMetadata(metadata: DynamicItemSource): Promise<LayoutEditorMetadataDescriptor | null>;
    static ɵfac: i0.ɵɵFactoryDeclaration<LayoutEditorMetadataExtractor, [null, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<LayoutEditorMetadataExtractor>;
}
//# sourceMappingURL=layoutEditorMetadataExtractor.service.d.ts.map