import { Cell, Column, CompactBean, CompactLine, Event, EventHandler, InitModelOf, ObjectWithType, SomeRequired, Table, TableCompactHandlerModel, TableRow, TableRowsInsertedEvent, TableRowsUpdatedEvent } from '../index';
export declare class TableCompactHandler implements TableCompactHandlerModel, ObjectWithType {
    model: TableCompactHandlerModel;
    initModel: SomeRequired<this['model'], 'table'>;
    objectType: string;
    table: Table;
    useOnlyVisibleColumns: boolean;
    maxContentLines: number;
    protected _oldStates: Record<string, any>;
    protected _updateHandler: EventHandler<TableRowsInsertedEvent | TableRowsUpdatedEvent | Event<Table>>;
    constructor();
    init(model: InitModelOf<this>): void;
    setUseOnlyVisibleColumns(useOnlyVisibleColumns: boolean): void;
    setMaxContentLines(maxContentLines: number): void;
    handle(compact: boolean): void;
    protected _adjustTable(compact: boolean): void;
    protected _cacheAndSetProperty(propertyName: string, getter: () => any, setter: () => void): void;
    protected _resetProperty(propertyName: string, setter: (oldValue: any) => void): void;
    protected _compactColumns(compact: boolean): void;
    protected _attachTableHandler(): void;
    protected _detachTableHandler(): void;
    updateValues(rows: TableRow[]): void;
    protected _updateValue(columns: Column<any>[], row: TableRow): void;
    buildValue(columns: Column<any>[], row: TableRow): string;
    protected _createBean(columns: Column<any>[], row: TableRow): CompactBean;
    protected _processColumns(columns: Column<any>[], row: TableRow, bean: CompactBean): void;
    protected _getColumns(): Column<any>[];
    protected _acceptColumn(column: Column<any>): boolean;
    protected _processColumn(column: Column<any>, index: number, row: TableRow, bean: CompactBean): void;
    /**
     * @param bean
     *          the bean for the current row
     * @param column
     *          the currently processed column
     * @param index
     *          visible column index of the currently processed column
     * @param row
     *          the current row
     */
    protected _updateBean(bean: CompactBean, column: Column<any>, index: number, row: TableRow): void;
    protected _acceptColumnForTitle(column: Column<any>, index: number): boolean;
    protected _acceptColumnForSubtitle(column: Column<any>, index: number): boolean;
    protected _acceptColumnForTitleSuffix(column: Column<any>, index: number): boolean;
    protected _createCompactLine(column: Column<any>, index: number, row: TableRow): CompactLine;
    protected _showLabel(column: Column<any>, index: number, row: TableRow): boolean;
    protected _adaptCompactLine<TValue>(line: CompactLine, column: Column<TValue>, headerCell: Cell<TValue>, cell: Cell<TValue>): void;
    protected _postProcessBean(bean: CompactBean): void;
    protected _buildValue(bean: CompactBean): string;
    protected _onTableEvent(event: TableRowsInsertedEvent | TableRowsUpdatedEvent | Event<Table>): void;
}
//# sourceMappingURL=TableCompactHandler.d.ts.map