import { OnChanges, PipeTransform, TemplateRef } from '@angular/core';
import { TableColumn, TableColumnProp } from '../../types/table-column.type';
import { CellContext, HeaderCellContext } from '../../types/public.types';
import * as i0 from "@angular/core";
export declare class DataTableColumnDirective<TRow> implements TableColumn, OnChanges {
    private columnChangesService;
    name: string;
    prop: TableColumnProp;
    bindAsUnsafeHtml?: boolean;
    frozenLeft: boolean;
    frozenRight: boolean;
    flexGrow: number;
    resizeable: boolean;
    comparator: any;
    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>>;
    _headerTemplateInput: TemplateRef<HeaderCellContext>;
    _headerTemplateQuery: TemplateRef<HeaderCellContext>;
    get headerTemplate(): TemplateRef<HeaderCellContext>;
    _treeToggleTemplateInput: TemplateRef<any>;
    _treeToggleTemplateQuery: TemplateRef<any>;
    get treeToggleTemplate(): TemplateRef<any>;
    _ghostCellTemplateInput: TemplateRef<void>;
    _ghostCellTemplateQuery: TemplateRef<void>;
    get ghostCellTemplate(): TemplateRef<void>;
    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;
}
