import { Column, Event, EventHandler, Filter, Group, InitModelOf, ObjectOrChildModel, ObjectOrModel, Predicate, PropertyChangeEvent, Table, TableAllRowsDeletedEvent, TableFilterAddedEvent, TableFilterRemovedEvent, TableGroupEvent, TableRow, TableRowOrderChangedEvent, TableRowsDeletedEvent, TableRowsInsertedEvent, TableRowsSelectedEvent, TableRowTileMapping, TableTileGridMediatorEventMap, TableTileGridMediatorModel, Tile, TileAccordion, TileActionEvent, TileClickEvent, TileGrid, TileGridLayoutConfig, TileTableHierarchyFilter, Widget } from '../index';
/**
 * Delegates events between the {@link Table} and it's internal {@link TileGrid}.
 */
export declare class TableTileGridMediator extends Widget implements TableTileGridMediatorModel {
    model: TableTileGridMediatorModel;
    eventMap: TableTileGridMediatorEventMap;
    self: TableTileGridMediator;
    parent: Table;
    table: Table;
    tileAccordion: TileAccordion;
    tiles: Tile[];
    tileMappings: TableRowTileMapping[];
    /** tiles by rowId */
    tilesMap: Record<string, Tile>;
    /** groupId by tile */
    groupForTileMap: Record<string, string>;
    /** always stores the last table state before tileMode activation */
    tableState: Record<string, any>;
    /** properties for internal tileAccordion */
    exclusiveExpand: boolean;
    gridColumnCount: number;
    tileGridLayoutConfig: TileGridLayoutConfig;
    withPlaceholders: boolean;
    protected _isUpdatingTiles: boolean;
    protected _tableHierarchyFilter: TileTableHierarchyFilter;
    protected _tileFilters: MediatedTableTileFilter[];
    protected _destroyHandler: () => void;
    protected _tileAccordionPropertyChangeHandler: EventHandler<PropertyChangeEvent<any, TileAccordion>>;
    protected _tileAccordionActionHandler: EventHandler<TileActionEvent<TileAccordion>>;
    protected _tileAccordionClickHandler: EventHandler<TileClickEvent<TileAccordion>>;
    protected _tableFilterAddedHandler: EventHandler<TableFilterAddedEvent>;
    protected _tableFilterRemovedHandler: EventHandler<TableFilterRemovedEvent>;
    protected _tableFilterHandler: EventHandler<Event<Table>>;
    protected _tableGroupHandler: EventHandler<TableGroupEvent>;
    protected _tableRowsSelectedHandler: EventHandler<TableRowsSelectedEvent>;
    protected _tableRowsInsertedHandler: EventHandler<TableRowsInsertedEvent>;
    protected _tableRowsDeletedHandler: EventHandler<TableRowsDeletedEvent>;
    protected _tableAllRowsDeletedHandler: EventHandler<TableAllRowsDeletedEvent>;
    protected _tableRowOrderChangedHandler: EventHandler<TableRowOrderChangedEvent>;
    protected _tablePropertyChangeHandler: EventHandler<PropertyChangeEvent>;
    constructor();
    init(model: InitModelOf<this>): void;
    protected _installListeners(): void;
    protected _uninstallListeners(): void;
    setGridColumnCount(gridColumnCount: number): void;
    setTileGridLayoutConfig(tileGridLayoutConfig: ObjectOrModel<TileGridLayoutConfig>): void;
    protected _setTileGridLayoutConfig(tileGridLayoutConfig: ObjectOrModel<TileGridLayoutConfig>): void;
    setWithPlaceholders(withPlaceholders: boolean): void;
    protected _setTileMappings(tableRowTileMappings: TableRowTileMapping[]): void;
    setTiles(tiles: ObjectOrChildModel<Tile>[]): void;
    protected _setTiles(tiles: Tile[]): void;
    protected _setTilesInternal(tiles: Tile[]): void;
    loadTiles(): void;
    resolveMapping(tableRowTileMapping: TableRowTileMapping): Tile;
    protected _refreshTilesMap(tiles: Tile[]): void;
    getTilesForRows(rows: TableRow[]): Tile[];
    protected _initGroups(tiles: Tile[]): void;
    protected _adaptTileGrid(tileGrid: TileGrid): void;
    protected _createTileAccordion(): TileAccordion;
    protected _createTileGroup(groupId: string, primaryGroupingColumn: Column<any>, row: TableRow): Group<TileGrid>;
    activate(): void;
    deactivate(): void;
    reset(): void;
    renderTileMode(): void;
    destroy(): void;
    insertTiles(tiles: Tile[] | Tile): void;
    deleteTiles(tiles?: Tile[]): void;
    protected _onTileAccordionPropertyChange(event: PropertyChangeEvent<any, TileAccordion>): void;
    protected _onTileAccordionAction(event: TileActionEvent<TileAccordion>): void;
    protected _onTileAccordionClick(event: TileClickEvent<TileAccordion>): void;
    protected _onTableRowsSelected(event: TableRowsSelectedEvent): void;
    protected _onTableRowsInserted(event: TableRowsInsertedEvent): void;
    protected _onTableRowsDeleted(event: TableRowsDeletedEvent): void;
    protected _onTableAllRowsDeleted(event: TableAllRowsDeletedEvent): void;
    protected _onTableRowOrderChangedHandler(event: TableRowOrderChangedEvent): void;
    /** @internal */
    _onTableGroup(event?: TableGroupEvent): void;
    protected _onTableFilterAdded(event: TableFilterAddedEvent): void;
    protected _onTableFilterRemoved(event: TableFilterRemovedEvent): void;
    protected _addFilter(tableFilter: Filter<TableRow>): void;
    protected _removeFilterByPredicate(predicate: Predicate<MediatedTableTileFilter>, applyFilter?: boolean): void;
    protected _onTableFilter(event: Event<Table>): void;
    protected _syncSelectionFromTableToTile(): void;
    protected _syncSelectionFromTileGridToTable(selectedTiles: Tile[]): void;
    protected _updateGroupVisibility(): void;
    protected _syncScrollTopFromTableToTile(): void;
    protected _syncScrollTopFromTileGridToTable(): void;
    protected _syncFiltersFromTableToTile(): void;
    protected _onTablePropertyChange(event: PropertyChangeEvent): void;
    protected _renderTileTableHeader(): void;
    protected _removeTileTableHeader(): void;
    protected _renderTileAccordion(): void;
    protected _removeTileAccordion(): void;
}
export type MediatedTableTileFilter = Filter<Tile> & {
    tableFilter: Filter<TableRow>;
};
//# sourceMappingURL=TableTileGridMediator.d.ts.map