import { AfterViewInit, EventEmitter, Injector, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
import { AsyncValidatorFn, ValidatorFn } from '@angular/forms';
import { OTableColumn } from '../../../interfaces/o-table-column.interface';
import { OPercentageValueBaseType } from '../../../pipes/o-percentage.pipe';
import { DateFilterFunction } from '../../../types/date-filter-function.type';
import { ErrorData } from '../../../types/error-data.type';
import { Expression } from '../../../types/expression.type';
import { ODateValueType } from '../../../types/o-date-value.type';
import { OTableComponent } from '../o-table.component';
import * as i0 from "@angular/core";
export declare const DEFAULT_INPUTS_O_TABLE_COLUMN: string[];
export declare const DEFAULT_OUTPUTS_O_TABLE_COLUMN: string[];
export declare class OTableColumnComponent implements OTableColumn, OnDestroy, OnInit, AfterViewInit {
    table: OTableComponent;
    protected injector: Injector;
    renderer: any;
    editor: any;
    type: string;
    attr: string;
    title: string;
    titleAlign: string;
    contentAlign: 'start' | 'center' | 'end';
    sqlType: string;
    protected _SQLType: number;
    protected _orderable: boolean;
    protected _resizable: boolean;
    protected _searchable: boolean;
    protected _groupable: boolean;
    editable: boolean;
    width: string;
    minWidth: string;
    maxWidth: string;
    tooltip: boolean;
    tooltipValue: string;
    tooltipFunction: (rowData: any) => any;
    class: string;
    valueColumn: string;
    set multiline(val: boolean);
    get multiline(): boolean;
    protected _multiline: boolean;
    angularValidatorsFn: ValidatorFn[];
    angularValidatorsFnErrors: ErrorData[];
    angularAsyncValidatorsFn: AsyncValidatorFn[];
    filterExpressionFunction: (columnAttr: string, quickFilter?: string) => Expression;
    _filterSource: 'render' | 'data' | 'both';
    filterFunction: (cellValue: any, rowValue: any, quickFilter?: string) => boolean;
    protected format: string;
    protected grouping: any;
    protected thousandSeparator: string;
    protected decimalSeparator: string;
    protected currencySymbol: string;
    protected currencySymbolPosition: string;
    protected currencySymbolColumn: string;
    protected trueValue: any;
    protected falseValue: any;
    protected renderTrueValue: any;
    protected renderFalseValue: any;
    protected renderType: string;
    protected booleanType: string;
    protected imageType: string;
    protected avatar: string;
    protected emptyImage: string;
    protected icon: string;
    protected action: string;
    protected text: string;
    protected iconPosition: string;
    protected entity: string;
    protected service: string;
    protected columns: string;
    protected parentKeys: string;
    protected queryMethod: string;
    protected serviceType: string;
    protected translate: boolean;
    protected translateArgsFn: (rowData: any) => any[];
    oDateFormat: string;
    oHourFormat: number;
    valueBase: OPercentageValueBaseType;
    protected svgIcon: string;
    protected orequired: boolean;
    showPlaceHolder: boolean;
    olabel: string;
    updateRecordOnEdit: boolean;
    showNotificationOnEdit: boolean;
    protected locale: string;
    protected oStartView: 'month' | 'year';
    protected oMinDate: string;
    protected oMaxDate: string;
    protected oTouchUi: boolean;
    protected oStartAt: string;
    protected filterDate: DateFilterFunction;
    protected dateValueType: ODateValueType;
    min: number;
    max: number;
    step: number;
    minDecimalDigits: number;
    maxDecimalDigits: number;
    indeterminateOnNull: boolean;
    autoCommit: boolean;
    onClick: EventEmitter<object>;
    editionStarted: EventEmitter<object>;
    editionCancelled: EventEmitter<object>;
    editionCommitted: EventEmitter<object>;
    onPostUpdateRecord: EventEmitter<object>;
    headerTooltip: string;
    headerTooltipIcon: string;
    headerTooltipClass: string;
    asyncLoad: boolean;
    container: ViewContainerRef;
    private subscriptions;
    constructor(table: OTableComponent, injector: Injector);
    static addEditor(type: string, editorClassReference: any): void;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    parseTitleAlign(): string;
    get originalWidth(): string;
    protected createRenderer(): void;
    buildCellEditor(type: string, container: ViewContainerRef, propsOrigin: any, registerInColumn?: boolean): any;
    protected createEditor(): void;
    registerRenderer(renderer: any): void;
    registerEditor(editor: any): void;
    set orderable(val: any);
    get orderable(): any;
    set resizable(val: any);
    get resizable(): any;
    set searchable(val: any);
    get searchable(): any;
    set groupable(val: any);
    get groupable(): any;
    getSQLType(): number;
    set filterSource(val: string);
    get filterSource(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<OTableColumnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<OTableColumnComponent, "o-table-column", never, { "attr": { "alias": "attr"; "required": false; }; "title": { "alias": "title"; "required": false; }; "titleAlign": { "alias": "title-align"; "required": false; }; "contentAlign": { "alias": "content-align"; "required": false; }; "orderable": { "alias": "orderable"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "groupable": { "alias": "groupable"; "required": false; }; "type": { "alias": "type"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "width": { "alias": "width"; "required": false; }; "minWidth": { "alias": "min-width"; "required": false; }; "maxWidth": { "alias": "max-width"; "required": false; }; "asyncLoad": { "alias": "async-load"; "required": false; }; "sqlType": { "alias": "sql-type"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "tooltipValue": { "alias": "tooltip-value"; "required": false; }; "tooltipFunction": { "alias": "tooltip-function"; "required": false; }; "multiline": { "alias": "multiline"; "required": false; }; "resizable": { "alias": "resizable"; "required": false; }; "filterExpressionFunction": { "alias": "filter-expression-function"; "required": false; }; "class": { "alias": "class"; "required": false; }; "angularValidatorsFn": { "alias": "validators"; "required": false; }; "angularValidatorsFnErrors": { "alias": "validators-errors"; "required": false; }; "angularAsyncValidatorsFn": { "alias": "async-validators"; "required": false; }; "valueColumn": { "alias": "value-column"; "required": false; }; "headerTooltip": { "alias": "header-tooltip"; "required": false; }; "headerTooltipIcon": { "alias": "header-tooltip-icon"; "required": false; }; "headerTooltipClass": { "alias": "header-tooltip-class"; "required": false; }; "trueValue": { "alias": "true-value"; "required": false; }; "falseValue": { "alias": "false-value"; "required": false; }; "booleanType": { "alias": "boolean-type"; "required": false; }; "renderTrueValue": { "alias": "render-true-value"; "required": false; }; "renderFalseValue": { "alias": "render-false-value"; "required": false; }; "renderType": { "alias": "render-type"; "required": false; }; "grouping": { "alias": "grouping"; "required": false; }; "thousandSeparator": { "alias": "thousand-separator"; "required": false; }; "decimalSeparator": { "alias": "decimal-separator"; "required": false; }; "minDecimalDigits": { "alias": "min-decimal-digits"; "required": false; }; "maxDecimalDigits": { "alias": "max-decimal-digits"; "required": false; }; "currencySymbol": { "alias": "currency-symbol"; "required": false; }; "currencySymbolPosition": { "alias": "currency-symbol-position"; "required": false; }; "currencySymbolColumn": { "alias": "currency-symbol-column"; "required": false; }; "valueBase": { "alias": "value-base"; "required": false; }; "format": { "alias": "format"; "required": false; }; "imageType": { "alias": "image-type"; "required": false; }; "emptyImage": { "alias": "empty-image"; "required": false; }; "avatar": { "alias": "avatar"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "svgIcon": { "alias": "svg-icon"; "required": false; }; "action": { "alias": "action"; "required": false; }; "text": { "alias": "text"; "required": false; }; "iconPosition": { "alias": "icon-position"; "required": false; }; "entity": { "alias": "entity"; "required": false; }; "service": { "alias": "service"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "translate": { "alias": "translate"; "required": false; }; "valueColumnType": { "alias": "value-column-type"; "required": false; }; "parentKeys": { "alias": "parent-keys"; "required": false; }; "queryMethod": { "alias": "query-method"; "required": false; }; "serviceType": { "alias": "service-type"; "required": false; }; "translateArgsFn": { "alias": "translate-params"; "required": false; }; "configureServiceArgs": { "alias": "configure-service-args"; "required": false; }; "orequired": { "alias": "required"; "required": false; }; "showPlaceHolder": { "alias": "show-placeholder"; "required": false; }; "olabel": { "alias": "label"; "required": false; }; "updateRecordOnEdit": { "alias": "update-record-on-edit"; "required": false; }; "showNotificationOnEdit": { "alias": "show-notification-on-edit"; "required": false; }; "enabled": { "alias": "enabled"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "oStartView": { "alias": "start-view"; "required": false; }; "oTouchUi": { "alias": "touch-ui"; "required": false; }; "startAt": { "alias": "start-at"; "required": false; }; "filterDate": { "alias": "filter-date"; "required": false; }; "dateValueType": { "alias": "date-value-type"; "required": false; }; "oDateFormat": { "alias": "date-format"; "required": false; }; "oDateLocale": { "alias": "date-locale"; "required": false; }; "oDateStartView": { "alias": "date-start-view"; "required": false; }; "oMinDate": { "alias": "date-min"; "required": false; }; "oMaxDate": { "alias": "date-max"; "required": false; }; "oDateTouchUi": { "alias": "date-touch-ui"; "required": false; }; "oDateStartAt": { "alias": "date-start-at"; "required": false; }; "oHourFormat": { "alias": "hour-format"; "required": false; }; "oHourMin": { "alias": "hour-min"; "required": false; }; "oHourMax": { "alias": "hour-max"; "required": false; }; "oHourPlaceholder": { "alias": "hour-placeholder"; "required": false; }; "oDatePlaceholder": { "alias": "date-placeholder"; "required": false; }; }, { "onClick": "onClick"; "onDataLoaded": "onDataLoaded"; "editionStarted": "editionStarted"; "editionCancelled": "editionCancelled"; "editionCommitted": "editionCommitted"; "onPostUpdateRecord": "onPostUpdateRecord"; }, never, never, true, never>;
}
