import { SmzEasyTableContentType } from '../../standalones/easy-table/models/smz-easy-table-contents';
import { SmzEasyTableBodyColumn, SmzEasyTableHeader } from '../../standalones/easy-table/models/smz-easy-table-state';
import { SmzBuilderUtilities } from '../common/smz-builder-utilities';
import { SmzDocumentWidthTypes } from '../smz-documents/document-base-cell';
import { SmzEasyTableBuilder } from './state-builder';
export declare abstract class SmzEasyBaseColumnBuilder<T extends SmzEasyBaseColumnBuilder<T>> {
    protected _table: SmzEasyTableBuilder;
    protected _parent: SmzEasyColumnCollectionBuilder;
    _column: SmzEasyTableBodyColumn;
    _header: SmzEasyTableHeader;
    constructor(_table: SmzEasyTableBuilder, _parent: SmzEasyColumnCollectionBuilder, type: SmzEasyTableContentType, key: string, header: string);
    useSort(order: 'asc' | 'desc'): SmzEasyBaseColumnBuilder<T>;
    hide(): SmzEasyBaseColumnBuilder<T>;
    setCellStyles(styleClass: string): SmzEasyBaseColumnBuilder<T>;
    setHeaderStyles(styleClass: string): SmzEasyBaseColumnBuilder<T>;
    setWidth(widthClass: SmzDocumentWidthTypes): SmzEasyBaseColumnBuilder<T>;
    get columns(): SmzEasyColumnCollectionBuilder;
}
export declare class SmzEasyColumnCollectionBuilder extends SmzBuilderUtilities<SmzEasyColumnCollectionBuilder> {
    private _tableBuilder;
    protected that: this;
    constructor(_tableBuilder: SmzEasyTableBuilder);
    text(header: string, dataPath: string, key?: string): SmzEasyTextColumnBuilder;
    custom(header: string, dataPath: string, key: string): SmzEasyCustomColumnBuilder;
    date(header: string, dataPath: string, key?: string): SmzEasyDateColumnBuilder;
    dataTransform(header: string, dataPath: string, key?: string): SmzEasyDataTransformColumnBuilder;
    get table(): SmzEasyTableBuilder;
}
export declare class SmzEasyTextColumnBuilder extends SmzEasyBaseColumnBuilder<SmzEasyTextColumnBuilder> {
    protected _table: SmzEasyTableBuilder;
    protected _parent: SmzEasyColumnCollectionBuilder;
    constructor(_table: SmzEasyTableBuilder, _parent: SmzEasyColumnCollectionBuilder, header: string, dataPath: string, key?: string);
}
export declare class SmzEasyDateColumnBuilder extends SmzEasyBaseColumnBuilder<SmzEasyDateColumnBuilder> {
    protected _table: SmzEasyTableBuilder;
    protected _parent: SmzEasyColumnCollectionBuilder;
    constructor(_table: SmzEasyTableBuilder, _parent: SmzEasyColumnCollectionBuilder, header: string, dataPath: string, key?: string);
    setDateFormat(format: 'shortDate' | 'short' | 'medium' | 'long' | 'mediumDate' | 'longDate' | 'shortTime'): SmzEasyDateColumnBuilder;
}
export declare class SmzEasyCustomColumnBuilder extends SmzEasyBaseColumnBuilder<SmzEasyCustomColumnBuilder> {
    protected _table: SmzEasyTableBuilder;
    protected _parent: SmzEasyColumnCollectionBuilder;
    constructor(_table: SmzEasyTableBuilder, _parent: SmzEasyColumnCollectionBuilder, header: string, dataPath: string, key?: string);
    setSearchDataPath(dataPath: string): SmzEasyCustomColumnBuilder;
}
export declare class SmzEasyDataTransformColumnBuilder extends SmzEasyBaseColumnBuilder<SmzEasyDataTransformColumnBuilder> {
    protected _table: SmzEasyTableBuilder;
    protected _parent: SmzEasyColumnCollectionBuilder;
    constructor(_table: SmzEasyTableBuilder, _parent: SmzEasyColumnCollectionBuilder, header: string, dataPath: string, key?: string);
    setCallback(callback: (data: any, row: any, index: number) => string, key?: string): SmzEasyDataTransformColumnBuilder;
    setSearchAndSortDataPath(dataPath: string): SmzEasyDataTransformColumnBuilder;
}
