import { ChangeDetectorRef, EventEmitter } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { SdModal } from '@sd-angular/core/components/modal';
import { Attribute, SdFormGenericExpression, SdFormGenericExpressionCondition } from '../../../../models';
import * as i0 from "@angular/core";
export declare class ExpressionBuilderComponent {
    private ref;
    modal?: SdModal;
    form: FormGroup<{}>;
    attributeOperators: Record<"string" | "number" | "boolean" | "datetime" | "values", {
        value: import("@sd-angular/core/components/workflow").Operator;
        symbol?: string;
        display: string;
    }[]>;
    attributes: Attribute[];
    numberAttributes: Attribute[];
    dateAttributes: Attribute[];
    attribute: Record<string, Attribute>;
    types: {
        value: string;
        display: string;
    }[];
    previouses: {
        value: string;
        display: string;
        format: (n: number) => string;
    }[];
    label?: string;
    set _attributes(attributes: Attribute[]);
    expression?: SdFormGenericExpression;
    model?: SdFormGenericExpression;
    set _model(model: SdFormGenericExpression | undefined);
    modelChange: EventEmitter<SdFormGenericExpression>;
    sdChange: EventEmitter<SdFormGenericExpression>;
    edit: EventEmitter<void>;
    constructor(ref: ChangeDetectorRef);
    ngOnInit(): void;
    onEdit: () => Promise<void>;
    addCondition: (conditions: SdFormGenericExpression["conditions"]) => void;
    addCombinator: (conditions: SdFormGenericExpression["conditions"]) => void;
    remove: (conditions: SdFormGenericExpression["conditions"], idx: number) => void;
    onAccept: () => void;
    onChangeAttribute: (condition: SdFormGenericExpressionCondition) => void;
    onChangeDateInfo: (condition: SdFormGenericExpressionCondition) => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ExpressionBuilderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ExpressionBuilderComponent, "expression-builder", never, { "label": { "alias": "label"; "required": false; }; "_attributes": { "alias": "attributes"; "required": false; }; "_model": { "alias": "model"; "required": true; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; "edit": "edit"; }, never, never, true, never>;
}
