import { ChangeDetectorRef, EventEmitter } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { SdModal } from '@sd-angular/core/components/modal';
import { SdFormGenericComponent, SdFormGenericDefinitionSelection, SdFormGenericGroup, SdFormGenericVariable } from '../../../../../../models';
import * as i0 from "@angular/core";
export declare class BuildVariables {
    #private;
    private ref;
    modal?: SdModal;
    components: (SdFormGenericComponent | SdFormGenericGroup)[];
    variables: SdFormGenericVariable[];
    form: FormGroup<{}>;
    label?: string;
    selections: SdFormGenericDefinitionSelection[];
    valuesKey?: string | null;
    set _valuesKey(valuesKey: string | undefined | null);
    selection?: SdFormGenericDefinitionSelection;
    leftProperties?: Property[];
    rightProperties?: Property[];
    items: {
        id: string;
        key: string;
        value: any;
    }[];
    queryString?: string;
    set _model(model: Record<string, any> | undefined);
    modelChange: EventEmitter<Record<string, string>>;
    constructor(ref: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    edit: () => Promise<void>;
    addField: () => void;
    remove: (idx: number) => void;
    onAccept: () => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BuildVariables, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BuildVariables, "build-variables", never, { "components": { "alias": "components"; "required": true; }; "variables": { "alias": "variables"; "required": true; }; "label": { "alias": "label"; "required": false; }; "selections": { "alias": "selections"; "required": true; }; "_valuesKey": { "alias": "valuesKey"; "required": true; }; "_model": { "alias": "model"; "required": true; }; }, { "modelChange": "modelChange"; }, never, never, true, never>;
}
export interface Property {
    value: string;
    display: string;
}
