import { ColumnTypeEnum } from '../../enums/column-type.enum';
import { SelectModel } from './select.model';
import { AlignEnum } from '../../enums/align.enum';
import { TableFooterModel } from './table-footer.model';
import { ButtonModel } from './button.model';
import { Observable } from 'rxjs';
export declare class ColumnModel {
    columnDef: string;
    header: ((e: any) => string) | string | undefined;
    align?: AlignEnum;
    alignHeader?: AlignEnum;
    link?: (e: any) => string;
    style?: (e: any) => string;
    className?: ((e: any) => string) | string;
    headerClassName?: (() => string) | string;
    columnType?: ColumnTypeEnum | ((e: any) => ColumnTypeEnum);
    onCellValueChange?: (e: any) => void;
    onHeaderCellValueChange?: (val: any) => void;
    disabled?: (e: any) => boolean;
    optionValues?: (e: any) => SelectModel[];
    display?: (e: any) => boolean;
    isShowHeader?: boolean;
    isNotShowHeaderCheckbox?: boolean;
    isRequired?: boolean | (() => boolean);
    min?: (e: any) => any;
    max?: (e: any) => any;
    hasWordBreakStyle?: boolean;
    validate?: (e: any) => any | null;
    errorMessage?: Map<string, () => string>;
    isTree?: boolean;
    isMultipleSelect?: boolean;
    isDecimal?: boolean | (() => boolean);
    isExpandOptionColumn?: () => boolean;
    footer?: TableFooterModel;
    footers?: TableFooterModel[];
    button?: ButtonModel;
    displayKey?: string;
    mappingConfig?: Record<string, string>;
    searchFn?: (term: string) => Observable<any[]>;
    title: (e: any) => string;
    cell: (e: any) => string;
}
