import { FormControl, FormGroup } from '@angular/forms';
import { DialogRef } from '@angular/cdk/dialog';
import { FormModelBuilder, FormModelGroup } from '@anglr/common/forms';
import { Dictionary } from '@jscrpt/common';
import { CustomComponentOptionsData } from './customComponentOptions.interface';
import { CustomComponentConfiguration } from '../../services';
import * as i0 from "@angular/core";
/**
 * Component used for displaying and editation of custom component options
 */
export declare class CustomComponentOptionsSAComponent<TConfig extends CustomComponentConfiguration = CustomComponentConfiguration> {
    protected data: CustomComponentOptionsData;
    protected dialog: DialogRef<CustomComponentOptionsSAComponent<TConfig>, TConfig>;
    /**
     * Instance of form control that is used for selection of component
     */
    protected component: FormControl<string>;
    /**
     * Form for name and description of custom component
     */
    protected nameDescriptionForm: FormGroup<FormModelGroup<CustomComponentConfiguration>>;
    /**
     * Array of used properties for components and their models
     */
    protected usedProperties: Dictionary<Dictionary<string[]>>;
    /**
     * Array of available properties for components and their models
     */
    protected availableProperties: Dictionary<Dictionary<string[]>>;
    /**
     * Array of content components that are available
     */
    protected contentComponents: string[];
    constructor(data: CustomComponentOptionsData, dialog: DialogRef<CustomComponentOptionsSAComponent<TConfig>, TConfig>, formModelBuilder: FormModelBuilder);
    /**
     * Adds component from custom component layout
     */
    protected addComponent(): void;
    /**
     * Removes component options
     * @param id - Id of component that should be removed
     */
    protected removeComponent(id: string): void;
    /**
     * Toggle selected property in component in model
     * @param id - Id of component to be edited
     * @param modelName - Name of model to be edited
     * @param propertyName - Name of property to be toggled
     */
    protected toggleSelected(id: string, modelName: string, propertyName: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CustomComponentOptionsSAComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CustomComponentOptionsSAComponent<any>, "custom-component-options", never, {}, {}, never, never, true, never>;
}
//# sourceMappingURL=customComponentOptions.component.d.ts.map