import * as _angular_core from '@angular/core';
import { AXDataSource, AXValueChangedEvent } from '@acorex/cdk/common';
import * as i1 from '@acorex/components/button-group';
import { AXButtonGroupItemComponent } from '@acorex/components/button-group';
import * as i3 from '@acorex/components/select-box';
import { AXSelectBoxComponent } from '@acorex/components/select-box';
import * as i2 from '@acorex/components/decorators';
import * as i4 from '@acorex/components/button';
import * as i5 from '@acorex/components/text-box';
import * as i6 from '@acorex/components/number-box';
import * as i7 from '@acorex/components/datetime-box';
import * as i8 from '@angular/common';

declare class AXQueryBuilderComponent {
    #private;
    readonly columnData: _angular_core.InputSignal<any[]>;
    queryData: _angular_core.ModelSignal<any[]>;
    onValueChanged: _angular_core.OutputEmitterRef<any[]>;
    protected selectBoxRef: _angular_core.Signal<AXSelectBoxComponent>;
    protected selectedItem: _angular_core.WritableSignal<any>;
    ds: AXDataSource<unknown>;
    protected operators: {
        string: string[];
        boolean: string[];
        number: string[];
        date: string[];
    };
    protected conditionHandler(e: AXButtonGroupItemComponent, i: any): void;
    protected columnDataHandler(e: AXValueChangedEvent<any>, i: any): void;
    protected operatorDataHandler(e: any, i: any): void;
    private recursiveFind;
    private recursiveRemove;
    protected addRulesHandler(i: any): void;
    protected addGroupHandler(i: any): void;
    protected booleanValueHandler(e: any, i: any): void;
    protected stringValueHandler(e: any, i: any): void;
    protected numberValueHandler(e: any, i: any): void;
    protected dateValueHandler(e: any, i: any): void;
    protected removeGroupHandler(i: any): void;
    protected removeRulesHandler(i: any): void;
    protected trackById(_: number, item: any): number;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXQueryBuilderComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXQueryBuilderComponent, "ax-query-builder", never, { "columnData": { "alias": "columnData"; "required": true; "isSignal": true; }; "queryData": { "alias": "queryData"; "required": true; "isSignal": true; }; }, { "queryData": "queryDataChange"; "onValueChanged": "onValueChanged"; }, never, never, true, never>;
}

declare class AXQueryBuilderModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXQueryBuilderModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXQueryBuilderModule, never, [typeof i1.AXButtonGroupModule, typeof i2.AXDecoratorModule, typeof i3.AXSelectBoxModule, typeof i4.AXButtonModule, typeof i5.AXTextBoxModule, typeof i6.AXNumberBoxModule, typeof i7.AXDateTimeBoxModule, typeof i8.CommonModule, typeof AXQueryBuilderComponent], [typeof AXQueryBuilderComponent]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXQueryBuilderModule>;
}

export { AXQueryBuilderComponent, AXQueryBuilderModule };
