import { Base, Type, IEnumerable$1, INotifyPropertyChanged, PropertyChangedEventArgs } from "igniteui-webcomponents-core";
import { DomWrapper, DomRenderer } from "igniteui-webcomponents-core";
import { SizeData } from "igniteui-webcomponents-core";
import { ControlDisplayDensity } from "igniteui-webcomponents-core";
import { BaseControlTheme } from "igniteui-webcomponents-core";
import { Size } from "igniteui-webcomponents-core";
import { Button } from "igniteui-webcomponents-inputs";
import { Icon } from "igniteui-webcomponents-inputs";
import { ButtonDisplayStyle } from "igniteui-webcomponents-inputs";
import { ButtonGroup } from "igniteui-webcomponents-inputs";
import { ColumnSortDirection } from "./ColumnSortDirection";
import { ListSortDirection } from "igniteui-webcomponents-core";
import { FontInfo } from "igniteui-webcomponents-core";
import { SRProvider } from "igniteui-webcomponents-core";
import { Brush } from "igniteui-webcomponents-core";
import { Column } from "./Column";
import { Grid } from "./Grid";
import { NotifyCollectionChangedEventArgs } from "igniteui-webcomponents-core";
/**
 * @hidden
 */
export declare abstract class GridColumnOptionsViewBase extends Base {
    static $t: Type;
    private d;
    private f;
    private a;
    protected readonly g: DomWrapper;
    protected readonly b: GridColumnOptionsBase;
    readonly e: DomRenderer;
    c(): SizeData;
    protected k(): void;
    m(): void;
    l(a: DomRenderer): void;
    protected h(a: DomWrapper): void;
    i(a: GridColumnOptionsBase): void;
    j(): void;
}
/**
 * @hidden
 */
export declare class GridColumnOptionsUtilities extends Base {
    static $t: Type;
    static d(a: DomRenderer, b: string, c: string, d: string, e: DomWrapper, f: DomWrapper, g?: boolean): {
        ret: DomWrapper;
        p4: DomWrapper;
        p5: DomWrapper;
    };
    static e(a: DomRenderer, b: string, c: string, d: string, e: string, f: DomWrapper): {
        ret: DomWrapper;
        p5: DomWrapper;
    };
    static f(a: DomRenderer, b: string, c: ControlDisplayDensity, d: BaseControlTheme, e: Size, f: Button, g: Icon, h: DomWrapper, i?: boolean, j?: boolean): {
        ret: DomWrapper;
        p5: Button;
        p6: Icon;
        p7: DomWrapper;
    };
    static g(a: DomRenderer, b: string, c: ButtonDisplayStyle, d: ControlDisplayDensity, e: BaseControlTheme, f: Size, g: Button, h: Icon, i: DomWrapper, j: DomWrapper, k?: boolean, l?: boolean, m?: boolean): {
        ret: DomWrapper;
        p6: Button;
        p7: Icon;
        p8: DomWrapper;
        p9: DomWrapper;
    };
    static h(a: DomRenderer, b: IEnumerable$1<Button>, c: IEnumerable$1<DomWrapper>, d: ControlDisplayDensity, e: BaseControlTheme, f: ButtonGroup): {
        ret: DomWrapper;
        p5: ButtonGroup;
    };
    static b(a: DomWrapper): boolean;
    static i(a: DomWrapper, b: boolean): void;
    static a(a: ListSortDirection): ColumnSortDirection;
    static c(a: ColumnSortDirection): ListSortDirection;
    static j(a: DomWrapper, b: boolean, c?: string): void;
    static l(a: Button, b: GridColumnOptionsBase): void;
    static k(a: ButtonGroup, b: GridColumnOptionsBase): void;
}
/**
 * @hidden
 */
export declare abstract class GridColumnOptionsBase extends Base implements INotifyPropertyChanged {
    static $t: Type;
    private d;
    constructor();
    propertyChanged: (sender: any, e: PropertyChangedEventArgs) => void;
    protected ba(a: string, b: any, c: any): void;
    private ac;
    private readonly ad;
    private ae;
    private readonly af;
    e: GridColumnOptionsViewBase;
    private ah;
    protected readonly ai: SRProvider;
    private aj;
    ak: boolean;
    private static bn;
    private bk;
    bm: Brush;
    private h;
    j: BaseControlTheme;
    private g;
    i: BaseControlTheme;
    private n;
    buttonDensity: ControlDisplayDensity;
    private l;
    p: ControlDisplayDensity;
    private x;
    ab: FontInfo;
    private v;
    z: FontInfo;
    private a;
    column: Column;
    private o;
    density: ControlDisplayDensity;
    private m;
    q: ControlDisplayDensity;
    private y;
    ag: FontInfo;
    private w;
    aa: FontInfo;
    readonly c: Grid;
    private static bo;
    private bl;
    bp: Brush;
    protected abstract f(): GridColumnOptionsViewBase;
    protected a5(): void;
    protected a6(a: any, b: PropertyChangedEventArgs): void;
    protected a7(a: any, b: NotifyCollectionChangedEventArgs): void;
    protected a8(a: any, b: NotifyCollectionChangedEventArgs): void;
    protected a9(a: any, b: PropertyChangedEventArgs): void;
    protected onViewInitialized(): void;
    protected bc(a: string, b: any, c: any): void;
    bg(): void;
    private bi;
    bh(a: Grid, b: Grid): void;
    bj(): void;
    private a3;
    private a4;
    bf(a: Button): void;
    be(a: ButtonGroup): void;
    destroy(): void;
    provideRenderer(a: DomRenderer): void;
}
