import { OnInit } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { TranslateService } from '@ngx-translate/core';
import { QueryField, QueryBuilderFieldMap, QueryBuilderSettings, QueryRule, QueryRuleSet } from './interfaces/ngx-ntk-query-builder.interfaces';
import { OperatorsService } from './services/operators.service';
import * as i0 from "@angular/core";
export declare class NgxQueryBuilderComponent implements OnInit, ControlValueAccessor {
    translate: TranslateService;
    operatorsService: OperatorsService;
    fieldMap: QueryBuilderFieldMap;
    settings: QueryBuilderSettings;
    disabled: boolean;
    data: QueryRuleSet;
    parent: QueryRuleSet;
    index: number;
    set language(value: string);
    constructor(translate: TranslateService, operatorsService: OperatorsService);
    ngOnInit(): void;
    /**** ControlValueAccessor START ****/
    onChange: (data: QueryRuleSet) => void;
    onTouched: () => void;
    writeValue(data: any): void;
    registerOnChange(fn: (data: QueryRuleSet) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    /**** ControlValueAccessor END ****/
    addRule(): void;
    removeRule(index: number): void;
    addRuleSet(): void;
    removeRuleSet(index: number): void;
    changeCondition(value: string): void;
    changeField(rule: QueryRule, index: number): void;
    hasParentRuleSet(): boolean;
    getEmptyRuleSetData(): QueryRuleSet;
    getFields(): QueryField[];
    getInputType(rule: QueryRule): string;
    getRuleOptions(rule: QueryRule): any;
    convertToRuleSet(model: QueryRuleSet | QueryRule): QueryRuleSet;
    convertToRule(model: QueryRuleSet | QueryRule): QueryRule;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxQueryBuilderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgxQueryBuilderComponent, "ngx-ntk-query-builder", never, { "fieldMap": "fieldMap"; "settings": "settings"; "disabled": "disabled"; "data": "data"; "parent": "parent"; "index": "index"; "language": "language"; }, {}, never, never, false, never>;
}
