import { Type } from '@angular/core';
import { Logger } from '@anglr/common';
import { Dictionary } from '@jscrpt/common';
import { LayoutEditorPropertyMetadata } from '../../misc/types';
import * as i0 from "@angular/core";
/**
 * Service used for extracting property metadata
 */
export declare class LayoutEditorPropertyMetadataExtractor {
    protected _layoutPropertiesSymbols: symbol[];
    protected _logger?: Logger | undefined;
    constructor(_layoutPropertiesSymbols: symbol[], _logger?: Logger | undefined);
    /**
     * Extracts properties metadata from type
     * @param type - Type to be examined
     */
    extract<TMetadata extends LayoutEditorPropertyMetadata = LayoutEditorPropertyMetadata>(type?: Type<any>): Dictionary<TMetadata> | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<LayoutEditorPropertyMetadataExtractor, [null, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<LayoutEditorPropertyMetadataExtractor>;
}
//# sourceMappingURL=layoutEditorPropertyMetadataExtractor.service.d.ts.map