import { Base, Type, INotifyPropertyChanged, PropertyChangedEventArgs } from "igniteui-webcomponents-core";
import { DomRenderer, DomWrapper, NormalizedEvent } from "igniteui-webcomponents-core";
import { Path } from "igniteui-webcomponents-core";
import { AnimationKeyFrameEffect } from "igniteui-webcomponents-core";
import { AnimationKeyFrameEffectTiming } from "igniteui-webcomponents-core";
import { CellContentHorizontalAlignment } from "./CellContentHorizontalAlignment";
import { DataGridColumn } from "./DataGridColumn";
import { IToolbarTarget } from "igniteui-webcomponents-core";
import { Brush } from "igniteui-webcomponents-core";
import { ToolCommand } from "igniteui-webcomponents-core";
import { GridFilterDialogOpeningEventArgs } from "./GridFilterDialogOpeningEventArgs";
import { GridFilterDialogFilterChangeEventArgs } from "./GridFilterDialogFilterChangeEventArgs";
import { GridFilterDialogViewModelRow } from "./GridFilterDialogViewModelRow";
import { GridFilterDialogViewModelGroupingLevel } from "./GridFilterDialogViewModelGroupingLevel";
import { GridFilterDialogViewModelGrouping } from "./GridFilterDialogViewModelGrouping";
import { ColumnComparisonFilterCondition } from "./ColumnComparisonFilterCondition";
import { ColumnComparisonConditionOperatorType } from "./ColumnComparisonConditionOperatorType";
import { FilterDialogRenderCompletedEventArgs } from "./FilterDialogRenderCompletedEventArgs";
import { ToolActionInfo } from "igniteui-webcomponents-core";
import { ICommandAvailabilityListener } from "igniteui-webcomponents-core";
import { ICommandStateChangedListener } from "igniteui-webcomponents-core";
import { ToolCommandExecutionState } from "igniteui-webcomponents-core";
import { IToolbarContextAccessor } from "igniteui-webcomponents-core";
import { DataSourceSchemaPropertyType } from "igniteui-webcomponents-core";
import { GridFilterDialogViewModelGroupingLevelCollection } from "./GridFilterDialogViewModelGroupingLevelCollection";
import { ObservableCollection$1 } from "igniteui-webcomponents-core";
/**
 * @hidden
 */
export declare class GridFilterDialogView extends Base {
    static $t: Type;
    constructor(a: GridFilterDialog);
    b: GridFilterDialog;
    q: any;
    private aa;
    private j;
    private i;
    y(): void;
    private t;
    s(): void;
    a(a: AnimationKeyFrameEffectTiming): AnimationKeyFrameEffect;
    private d;
    m: DomRenderer;
    private n;
    private o;
    private g;
    private f;
    private h;
    v(a: any, b: any, c: any): void;
    r(a: any): void;
    p(): any;
    private x;
    z(): void;
    private l;
    private k;
    w(a: number, b: number): void;
    u(): void;
    e: boolean;
    private c;
}
/**
 * @hidden
 */
export declare class GridFilterDialogPanel extends Base {
    static $t: Type;
    private b;
    private k;
    private d;
    private j;
    private i;
    a: GridFilterDialog;
    h: DomWrapper;
    f: DomRenderer;
    e: DomRenderer;
    g: DomWrapper;
    constructor(a: GridFilterDialog, b: DomWrapper, c: DomRenderer, d: DomRenderer);
    private o;
    private onDocumentKeyDown;
    private onDocumentMouseClick;
    private onFilterApplyClick;
    private onFilterCancelClick;
    t(a: DataGridColumn): void;
    n(): void;
    l(): void;
    m(): void;
    private static c;
}
/**
 * @hidden
 */
export declare class GridFilterDialog extends Base implements INotifyPropertyChanged, IToolbarTarget {
    static $t: Type;
    private ar;
    get as(): any;
    set as(a: any);
    private z;
    get ab(): boolean;
    set ab(a: boolean);
    propertyChanged: (sender: any, e: PropertyChangedEventArgs) => void;
    private ag;
    get aj(): number;
    set aj(a: number);
    private af;
    get ai(): number;
    set ai(a: number);
    private j;
    get l(): CellContentHorizontalAlignment;
    set l(a: CellContentHorizontalAlignment);
    private i;
    get k(): CellContentHorizontalAlignment;
    set k(a: CellContentHorizontalAlignment);
    private al;
    get an(): number;
    set an(a: number);
    private am;
    get ao(): number;
    set ao(a: number);
    private bs;
    get bw(): Brush;
    set bw(a: Brush);
    private ah;
    get ak(): number;
    set ak(a: number);
    bv: Brush;
    bu: Brush;
    bt: Brush;
    private w;
    private y;
    get ac(): boolean;
    protected bj(a: string, b: any, c: any): void;
    protected bm(a: string, b: any, c: any): void;
    constructor();
    bn(a: any, b: any, c: any): void;
    private m;
    get n(): DataGridColumn;
    set n(a: DataGridColumn);
    private x;
    private bf;
    private v;
    private bg;
    private a6;
    private a8;
    bh(): void;
    bi(a: GridFilterDialogViewModel, b: boolean): void;
    private a9;
    private bq;
    private bp;
    private f;
    private bo;
    private e;
    private ae;
    private g;
    private aq;
    private h;
    private d;
    private c;
    private bl;
    private t;
    private a7;
    private u;
    static ap(a: ColumnComparisonConditionOperatorType): number;
    static at(a: number, b: ColumnComparisonConditionOperatorType, c: ColumnComparisonFilterCondition): any;
    static au(a: number, b: ColumnComparisonConditionOperatorType, c: ColumnComparisonFilterCondition): any;
    static b(a: ColumnComparisonConditionOperatorType[]): number[];
    static a(a: ColumnComparisonConditionOperatorType[]): string[];
    static az(a: ColumnComparisonConditionOperatorType): string;
    dialogOpening: (sender: any, args: GridFilterDialogOpeningEventArgs) => void;
    filterChanging: (sender: any, args: GridFilterDialogFilterChangeEventArgs) => void;
    filterChanged: (sender: any, args: GridFilterDialogFilterChangeEventArgs) => void;
    be(a: number, b: number): void;
    bd(): void;
    bc(a: number, b: number, c: Path): void;
    br(): void;
    bb(): void;
    protected s: GridFilterDialogView;
    private _commandCompleted;
    get commandCompleted(): (arg1: ToolCommand) => void;
    set commandCompleted(a: (arg1: ToolCommand) => void);
    private _invalidateActions;
    get invalidateActions(): () => void;
    set invalidateActions(a: () => void);
    renderCompleted: (sender: any, args: FilterDialogRenderCompletedEventArgs) => void;
    bk(): void;
    ba(): void;
    private static aa;
    private static readonly ay;
    getDesiredToolbarActions(): ToolActionInfo[];
    addCommandAvailabilityListener(a: ICommandAvailabilityListener): void;
    removeCommandAvailabilityListener(a: ICommandAvailabilityListener): void;
    addCommandStateChangedListener(a: ICommandStateChangedListener): void;
    removeCommandStateChangedListener(a: ICommandStateChangedListener): void;
    onToolCommandExecuting(a: ToolCommand): ToolCommandExecutionState;
    provideContextAccessor(a: IToolbarContextAccessor): void;
    dismissContextAccessor(a: IToolbarContextAccessor): void;
    ad(e_: NormalizedEvent): boolean;
}
/**
 * @hidden
 */
export declare class GridFilterDialogViewModel extends Base {
    static $t: Type;
    a: DataSourceSchemaPropertyType;
    e: GridFilterDialogViewModelGroupingLevelCollection;
    k: boolean;
    n(): void;
    constructor();
    private u;
    private t;
    private r;
    private w;
    private s;
    private q;
    private v;
    private p;
    b(a: number): GridFilterDialogViewModelGrouping;
    c(a: number): GridFilterDialogViewModelGroupingLevel;
    m: number;
    h(a: number, b: number): boolean;
    private i;
    private j;
    private d;
    aa(a: number, b: number): void;
    private x;
    private y;
    l(a: number, b: number): boolean;
    z(a: number, b: number): void;
    o(a: number, b: number, c: boolean): void;
    f: GridFilterDialogViewModelRowCollection;
    onModified: (vm: GridFilterDialogViewModel) => void;
}
/**
 * @hidden
 */
export declare class GridFilterDialogViewModelRowCollection extends ObservableCollection$1<GridFilterDialogViewModelRow> {
    static $t: Type;
    constructor();
    private ah;
    ae: GridFilterDialogViewModel;
    private ai;
    private af;
    get ag(): (arg1: GridFilterDialogViewModel) => void;
    set ag(a: (arg1: GridFilterDialogViewModel) => void);
}
