import { AfterContentInit, AfterViewInit, TemplateRef, Injector, OnInit } from '@angular/core';
import { AppDefaults } from '@wm/core';
import { BaseComponent } from '@wm/components/base';
import { TableComponent } from '../table.component';
import { TableColumnGroupDirective } from '../table-column-group/table-column-group.directive';
import * as i0 from "@angular/core";
export declare class TableColumnDirective extends BaseComponent implements OnInit, AfterContentInit, AfterViewInit {
    private appDefaults;
    table: TableComponent;
    group: TableColumnGroupDirective;
    bindfilterdataset: any;
    binddataset: any;
    static initializeProps: void;
    _filterInstances: any;
    _inlineInstances: any;
    _inlineInstancesNew: any;
    customExprTmpl: any;
    inlineWidthTempRef: any;
    private _propsInitialized;
    private _filterDataSet;
    private _isRowFilter;
    private _isInlineEditable;
    private _isNewEditableRow;
    key: any;
    filterInstance: any;
    inlineInstance: any;
    inlineInstanceNew: any;
    backgroundcolor: any;
    binding: any;
    caption: any;
    dataset: any;
    defaultvalue: any;
    editWidgetType: any;
    filterwidget: any;
    field: any;
    formatpattern: any;
    custompipeformat: any;
    generator: any;
    limit: any;
    mobiledisplay: any;
    pcdisplay: any;
    tabletdisplay: any;
    readonly: any;
    required: any;
    maxchars: any;
    minvalue: any;
    maxvalue: any;
    regexp: any;
    searchable: any;
    showinfilter: any;
    show: any;
    sortable: any;
    textalignment: any;
    textcolor: any;
    type: any;
    width: any;
    datepattern: any;
    editdatepattern: any;
    filterdatafield: any;
    filterdisplayfield: any;
    filterdisplaylabel: any;
    filtersearchkey: any;
    filterplaceholder: any;
    datafield: any;
    displayfield: any;
    displayName: any;
    pcDisplay: any;
    mobileDisplay: any;
    tabletDisplay: any;
    textAlignment: any;
    backgroundColor: any;
    textColor: any;
    primaryKey: any;
    relatedEntityName: any;
    style: any;
    class: any;
    ngclass: any;
    filterOn: any;
    filterControl: any;
    isDataSetBound: any;
    isFilterDataSetBound: any;
    showPendingSpinner: any;
    showPendingSpinnerNew: any;
    validationmessage: any;
    activeControlType: any;
    private _dataoptions;
    private _datasource;
    private notifyForFields;
    private fieldValidations;
    private fieldValidations_new;
    private syncValidators;
    private asyncValidators;
    private observeOnFields;
    filterTemplateRef: TemplateRef<any>;
    constructor(inj: Injector, appDefaults: AppDefaults, table: TableComponent, group: TableColumnGroupDirective, bindfilterdataset: any, binddataset: any, explicitContext: any);
    get dataoptions(): any;
    set dataoptions(options: any);
    get datasource(): any;
    set datasource(ds: any);
    ngOnInit(): void;
    ngAfterContentInit(): void;
    ngAfterViewInit(): void;
    applyValidations(): void;
    removeValidations(): void;
    applyNewRowValidations(): void;
    removeNewRowValidations(): void;
    addFormControl(suffix?: string): void;
    getFormControl(suffix?: string): import("@angular/forms").AbstractControl<any, any>;
    private _checkNewEditableRowControl;
    setUpControls(): void;
    resetFilter(): void;
    onFilterValueChange(val: any): void;
    get datavalue(): any;
    set datavalue(val: any);
    get value(): any;
    set value(val: any);
    onValueChange(val: any, widget: any): void;
    loadFilterData(): void;
    loadInlineWidgetData(): void;
    onDataSourceChange(): void;
    setFilterWidgetDataSet(): void;
    setUpFilterWidget(): void;
    notifyChanges(quickEdit?: any): void;
    observeOn(fields: any): void;
    setUpValidators(): void;
    setAsyncValidators(validators: any): void;
    setValidators(validators: any): void;
    boundFn(fn: any): any;
    onStatusChange(status: any, type: any): void;
    setSummaryRowData(data: any): void;
    private _invokeSummaryRowData;
    private _getColumnData;
    aggregate: {
        sum: () => number;
        average: (precision?: number) => number;
        count: () => number;
        minimum: () => unknown;
        maximum: () => unknown;
        percent: (value: any, precision?: number) => number;
    };
    setInlineWidgetProp(widget: any, prop: any, nv: any): void;
    setUpInlineWidget(widget: any): void;
    getStyleDef(): string;
    populateFieldDef(): void;
    onPropertyChange(key: any, nv: any, ov: any): void;
    setProperty(property: any, nv: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TableColumnDirective, [null, null, { optional: true; }, { optional: true; }, { attribute: "filterdataset.bind"; }, { attribute: "dataset.bind"; }, { optional: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TableColumnDirective, "[wmTableColumn]", never, {}, {}, ["customExprTmpl", "inlineWidthTempRef", "filterTemplateRef", "_filterInstances", "_inlineInstances", "_inlineInstancesNew"], never, false, never>;
}
