import { ChangeDetectorRef, Type } from '@angular/core';
import { TitledDialogService } from '@anglr/common/material';
import { LanguageModel } from '@anglr/dynamic';
import { PropertiesControl } from '../../interfaces';
import { PropertiesControlBase } from '../../modules';
import { LayoutEditorMetadataExtractor } from '../../services';
import * as i0 from "@angular/core";
/**
 * Base component used for displaying code properties control
 */
export declare class BaseCodePropertiesControlSAComponent<TOptions = any> extends PropertiesControlBase<TOptions> implements PropertiesControl<TOptions> {
    protected dialog: TitledDialogService;
    /**
     * Name of property that will be set by this component
     */
    property: string | undefined | null;
    /**
     * Language model to be used in code editor
     */
    languageModel: LanguageModel | undefined | null;
    constructor(changeDetector: ChangeDetectorRef, metadataExtractor: LayoutEditorMetadataExtractor, dialog: TitledDialogService);
    /**
     * Shows code editor
     */
    protected showCodeEditor(): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseCodePropertiesControlSAComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BaseCodePropertiesControlSAComponent<any>, "base-code-properties-control", never, { "property": { "alias": "property"; "required": false; }; "languageModel": { "alias": "languageModel"; "required": false; }; }, {}, never, never, true, never>;
}
/**
 * Gets code properties control component for specific property
 * @param property - Name of property that will be set by this component
 * @param languageModel - Language model to be used in code editor
 */
export declare function codePropertiesControlFor<TModel>(property: Extract<keyof TModel, string>, languageModel: LanguageModel): Type<PropertiesControl>;
//# sourceMappingURL=codePropertiesControl.component.d.ts.map