import { ElementRef, Injector, OnChanges, OnInit } from '@angular/core';
import { LayoutComponentMetadata } from '@anglr/dynamic/layout';
import { TitledDialogService } from '@anglr/common/material';
import { LayoutEditorPropertyMetadataExtractor } from '@anglr/dynamic/layout-editor';
import { Dictionary } from '@jscrpt/common';
import { ContentComponentData } from '../../components';
import { CustomComponentConfiguration, CustomComponentsRegister } from '../../services';
import * as i0 from "@angular/core";
/**
 * Directive that is used for displaying custom component options
 */
export declare class ShowCustomComponentOptionsSADirective<TConfig extends CustomComponentConfiguration = CustomComponentConfiguration> implements OnInit, OnChanges {
    protected injector: Injector;
    protected dialogSvc: TitledDialogService;
    protected customComponentsRegister: CustomComponentsRegister<TConfig>;
    protected propsMetadataExtractor: LayoutEditorPropertyMetadataExtractor;
    protected element: ElementRef<HTMLButtonElement>;
    /**
     * Metadata for each component in custom component
     */
    protected customComponentContentMetadata: Dictionary<ContentComponentData | undefined | null>;
    /**
     * Custom component layout metadata
     */
    protected customComponentMetadata: LayoutComponentMetadata | undefined | null;
    /**
     * Name of custom component which will be edited
     */
    name: string | undefined | null;
    constructor(injector: Injector, dialogSvc: TitledDialogService, customComponentsRegister: CustomComponentsRegister<TConfig>, propsMetadataExtractor: LayoutEditorPropertyMetadataExtractor, element: ElementRef<HTMLButtonElement>);
    /**
     * Called when input value changes
     */
    ngOnChanges(): Promise<void>;
    /**
     * Initialize component
     */
    ngOnInit(): Promise<void>;
    /**
     * Shows content options selection dialog
     * @param event - Event that occured
     */
    protected show(event: MouseEvent): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ShowCustomComponentOptionsSADirective<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ShowCustomComponentOptionsSADirective<any>, "[showCustomComponentOptions]", never, { "name": { "alias": "showCustomComponentOptions"; "required": false; }; }, {}, never, never, true, never>;
}
//# sourceMappingURL=showCustomComponentOptions.directive.d.ts.map