import { EventEmitter, OnInit, TemplateRef } from '@angular/core';
import { FormControlBase, FormSchemaBase, Operator } from '../../../classes/form-schema';
import { Filter } from '../../../models/grid-info';
export declare class QueryBuilderGroupComponent implements OnInit {
    dataSourceFields: any[];
    operators: any[];
    controlValue: FormControlBase;
    query: QueryGroup;
    canRemove: boolean;
    isRoot: boolean;
    templateFieldPicker: TemplateRef<any>;
    onRemove: EventEmitter<any>;
    columnSchema: any[];
    constructor();
    ngOnInit(): void;
    addNewRule(): void;
    addNewGroup(): void;
    removeGroup(): void;
    onChildRemove(query: any): void;
}
export declare interface IQuery {
    getQuery(): Filter;
    isGroup(): boolean;
}
export declare class QueryGroup implements IQuery {
    not: boolean;
    operator: boolean;
    queryArr: IQuery[];
    constructor(operator?: boolean, not?: boolean);
    addRule(rule: QueryRule): void;
    addGroup(group: QueryGroup): void;
    getQuery(): Filter;
    isGroup(): boolean;
}
export declare class QueryRule implements IQuery {
    field: string;
    compareType: Operator;
    value: any;
    funcGetValue?: Function;
    control: FormSchemaBase;
    constructor(field?: string, compareType?: Operator, value?: any);
    getQuery(): Filter;
    isGroup(): boolean;
}
export declare function genQueryFromFilters(filters: any): QueryGroup;
//# sourceMappingURL=query-builder-group.component.d.ts.map