import { OnChanges, PipeTransform, TemplateRef } from '@angular/core';
import { TableColumn, TableColumnProp } from '../../types/table-column.type';
import { CellContext, HeaderCellContext, Row } from '../../types/public.types';
import * as i0 from "@angular/core";
export declare class DataTableColumnDirective<TRow extends Row> implements TableColumn, OnChanges {
    private columnChangesService;
    name?: string;
    prop?: TableColumnProp;
    bindAsUnsafeHtml?: boolean;
    frozenLeft?: boolean;
    frozenRight?: boolean;
    flexGrow?: number;
    resizeable?: boolean;
    comparator?: (valueA: any, valueB: any, rowA: TRow, rowB: TRow, sortDir: 'desc' | 'asc') => number;
    pipe?: PipeTransform;
    sortable?: boolean;
    draggable?: boolean;
    canAutoResize?: boolean;
    minWidth?: number;
    width?: number;
    maxWidth?: number;
    checkboxable?: boolean;
    headerCheckboxable?: boolean;
    headerClass?: string | ((data: {
        column: TableColumn;
    }) => string | Record<string, boolean>);
    cellClass?: string | ((data: {
        row: TRow;
        group?: TRow[];
        column: TableColumn<TRow>;
        value: any;
        rowHeight: number;
    }) => string | Record<string, boolean>);
    isTreeColumn?: boolean;
    treeLevelIndent?: number;
    summaryFunc?: (cells: any[]) => any;
    summaryTemplate?: TemplateRef<any>;
    _cellTemplateInput?: TemplateRef<CellContext<TRow>>;
    _cellTemplateQuery?: TemplateRef<CellContext<TRow>>;
    get cellTemplate(): TemplateRef<CellContext<TRow>> | undefined;
    _headerTemplateInput?: TemplateRef<HeaderCellContext>;
    _headerTemplateQuery?: TemplateRef<HeaderCellContext>;
    get headerTemplate(): TemplateRef<HeaderCellContext> | undefined;
    _treeToggleTemplateInput?: TemplateRef<any>;
    _treeToggleTemplateQuery?: TemplateRef<any>;
    get treeToggleTemplate(): TemplateRef<any> | undefined;
    _ghostCellTemplateInput?: TemplateRef<void>;
    _ghostCellTemplateQuery?: TemplateRef<void>;
    get ghostCellTemplate(): TemplateRef<void> | undefined;
    private isFirstChange;
    ngOnChanges(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DataTableColumnDirective<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DataTableColumnDirective<any>, "ngx-datatable-column", never, { "name": { "alias": "name"; "required": false; }; "prop": { "alias": "prop"; "required": false; }; "bindAsUnsafeHtml": { "alias": "bindAsUnsafeHtml"; "required": false; }; "frozenLeft": { "alias": "frozenLeft"; "required": false; }; "frozenRight": { "alias": "frozenRight"; "required": false; }; "flexGrow": { "alias": "flexGrow"; "required": false; }; "resizeable": { "alias": "resizeable"; "required": false; }; "comparator": { "alias": "comparator"; "required": false; }; "pipe": { "alias": "pipe"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "canAutoResize": { "alias": "canAutoResize"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "width": { "alias": "width"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; "checkboxable": { "alias": "checkboxable"; "required": false; }; "headerCheckboxable": { "alias": "headerCheckboxable"; "required": false; }; "headerClass": { "alias": "headerClass"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "isTreeColumn": { "alias": "isTreeColumn"; "required": false; }; "treeLevelIndent": { "alias": "treeLevelIndent"; "required": false; }; "summaryFunc": { "alias": "summaryFunc"; "required": false; }; "summaryTemplate": { "alias": "summaryTemplate"; "required": false; }; "_cellTemplateInput": { "alias": "cellTemplate"; "required": false; }; "_headerTemplateInput": { "alias": "headerTemplate"; "required": false; }; "_treeToggleTemplateInput": { "alias": "treeToggleTemplate"; "required": false; }; "_ghostCellTemplateInput": { "alias": "ghostCellTemplate"; "required": false; }; }, {}, ["_cellTemplateQuery", "_headerTemplateQuery", "_treeToggleTemplateQuery", "_ghostCellTemplateQuery"], never, true, never>;
    static ngAcceptInputType_bindAsUnsafeHtml: unknown;
    static ngAcceptInputType_frozenLeft: unknown;
    static ngAcceptInputType_frozenRight: unknown;
    static ngAcceptInputType_flexGrow: unknown;
    static ngAcceptInputType_resizeable: unknown;
    static ngAcceptInputType_sortable: unknown;
    static ngAcceptInputType_draggable: unknown;
    static ngAcceptInputType_canAutoResize: unknown;
    static ngAcceptInputType_minWidth: unknown;
    static ngAcceptInputType_width: unknown;
    static ngAcceptInputType_maxWidth: unknown;
    static ngAcceptInputType_checkboxable: unknown;
    static ngAcceptInputType_headerCheckboxable: unknown;
    static ngAcceptInputType_isTreeColumn: unknown;
}
