import { AfterContentInit, ChangeDetectorRef, QueryList, TemplateRef } from '@angular/core';
import { DataType } from '../data-operations/data-util';
import { IgxGridAPIService } from './api.service';
import { IgxGridCellComponent } from './cell.component';
import { IgxCellEditorTemplateDirective, IgxCellFooterTemplateDirective, IgxCellHeaderTemplateDirective, IgxCellTemplateDirective } from './grid.common';
import { IgxGridComponent } from './grid.component';
/**
 * **Ignite UI for Angular Column** -
 * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid.html#columns-configuration)
 *
 * The Ignite UI Column is used within an `igx-grid` element to define what data the column will show. Features such as sorting,
 * filtering & editing are enabled at the column level.  You can also provide a template containing custom content inside
 * the column using `ng-template` which will be used for all cells within the column.
 */
export declare class IgxColumnComponent implements AfterContentInit {
    gridAPI: IgxGridAPIService;
    cdr: ChangeDetectorRef;
    field: string;
    header: string;
    sortable: boolean;
    groupable: boolean;
    editable: boolean;
    filterable: boolean;
    resizable: boolean;
    hasSummary: boolean;
    hidden: boolean;
    disableHiding: boolean;
    movable: boolean;
    width: string;
    maxWidth: string;
    minWidth: string;
    headerClasses: string;
    cellClasses: string;
    readonly index: number;
    formatter: (value: any) => any;
    filteringIgnoreCase: boolean;
    sortingIgnoreCase: boolean;
    dataType: DataType;
    pinned: boolean;
    gridID: string;
    summaries: any;
    searchable: boolean;
    filters: any;
    readonly defaultMinWidth: string;
    readonly grid: IgxGridComponent;
    bodyTemplate: TemplateRef<any>;
    headerTemplate: TemplateRef<any>;
    footerTemplate: TemplateRef<any>;
    inlineEditorTemplate: TemplateRef<any>;
    readonly cells: IgxGridCellComponent[];
    readonly visibleIndex: number;
    readonly columnGroup: boolean;
    readonly allChildren: IgxColumnComponent[];
    readonly level: number;
    parent: any;
    children: any;
    protected _unpinnedIndex: any;
    protected _pinned: boolean;
    protected _bodyTemplate: TemplateRef<any>;
    protected _headerTemplate: TemplateRef<any>;
    protected _footerTemplate: TemplateRef<any>;
    protected _inlineEditorTemplate: TemplateRef<any>;
    protected _summaries: any;
    protected _filters: any;
    protected _hidden: boolean;
    protected _index: number;
    protected _disableHiding: boolean;
    protected _defaultMinWidth: string;
    protected cellTemplate: IgxCellTemplateDirective;
    protected headTemplate: IgxCellHeaderTemplateDirective;
    protected footTemplate: IgxCellFooterTemplateDirective;
    protected editorTemplate: IgxCellEditorTemplateDirective;
    static updateHighlights(oldIndex: number, newIndex: number, grid: IgxGridComponent): void;
    constructor(gridAPI: IgxGridAPIService, cdr: ChangeDetectorRef);
    ngAfterContentInit(): void;
    pin(index?: any): any;
    unpin(index?: any): any;
    readonly topLevelParent: any;
    protected check(): void;
}
export declare class IgxColumnGroupComponent extends IgxColumnComponent implements AfterContentInit {
    children: QueryList<IgxColumnComponent>;
    summaries: any;
    searchable: boolean;
    filters: any;
    readonly defaultMinWidth: string;
    bodyTemplate: TemplateRef<any>;
    headerTemplate: TemplateRef<any>;
    footerTemplate: TemplateRef<any>;
    inlineEditorTemplate: TemplateRef<any>;
    readonly cells: IgxGridCellComponent[];
    hidden: boolean;
    ngAfterContentInit(): void;
    readonly allChildren: IgxColumnComponent[];
    readonly columnGroup: boolean;
    width: string;
}
