import { Observable } from 'rxjs';
import { OTableColumnCalculated } from '../../../interfaces/o-table-column-calculated.interface';
import { OTableColumn } from '../../../interfaces/o-table-column.interface';
import { Expression } from '../../../types/expression.type';
import { OperatorFunction } from '../../../types/operation-function.type';
import { OColumnAggregate } from '../../../types/table/o-column-aggregate.type';
import { OColumnTooltip } from '../../../types/table/o-column-tooltip.type';
import type { OBaseTableCellRenderer } from './cell-renderer/o-base-table-cell-renderer.class';
export declare class OColumn {
    attr: string;
    name: string;
    title: string;
    type: string;
    sqlType: number;
    className: string;
    orderable: boolean;
    groupable: boolean;
    _searchable: boolean;
    searching: boolean;
    visible: boolean;
    renderer: OBaseTableCellRenderer;
    editor: any;
    protected _editing: boolean;
    _width: string;
    minWidth: string;
    maxWidth: string;
    aggregate: OColumnAggregate;
    calculate: string | OperatorFunction;
    definition: OTableColumn;
    tooltip: OColumnTooltip;
    resizable: boolean;
    DOMWidth: number;
    valueColumn: string;
    headerTooltip: string;
    headerTooltipIcon: string;
    headerTooltipClass: string;
    filterExpressionFunction: (columnAttr: string, quickFilter?: string) => Expression;
    private multilineSubject;
    isMultiline: Observable<boolean>;
    private _multiline;
    get editing(): boolean;
    set editing(val: boolean);
    setDefaultProperties(args: any): void;
    setColumnProperties(column: OTableColumn & OTableColumnCalculated): void;
    set searchable(val: boolean);
    get searchable(): boolean;
    set multiline(val: boolean);
    get multiline(): boolean;
    hasTooltip(): boolean;
    getTooltip(rowData: any): any;
    getMinWidth(): string;
    getMinWidthValue(): number;
    getMaxWidthValue(): number;
    setRenderWidth(horizontalScrolled: boolean, clientWidth: number): void;
    getDOMWidth(val: any): number;
    set width(val: string);
    get width(): string;
    getWidthToStore(): any;
    setWidth(val: number): void;
    getTitleAlignClass(): string;
    getFilterValue(cellValue: any, rowValue?: any): any[];
    useCustomFilterFunction(): boolean;
    useQuickfilterFunction(): boolean;
}
