import type { DatabaseBlockModel } from '../database-model.js'; import type { Column, InsertToPosition } from '../types.js'; import type { FilterGroup } from './ast.js'; export type TableViewColumn = { id: string; width: number; hide?: boolean; }; export type KanbanViewColumn = { id: string; hide?: boolean; }; export type GroupBy = { type: 'groupBy'; columnId: string; name: string; }; export type DatabaseModeMap = { table: { columns: TableViewColumn[]; filter: FilterGroup; }; kanban: { columns: KanbanViewColumn[]; filter: FilterGroup; groupBy?: GroupBy; }; }; export type DatabaseViewDataMap = { [K in keyof DatabaseModeMap]: DatabaseModeMap[K] & { id: string; name: string; mode: K; }; }; type ViewOperation = { init(model: DatabaseBlockModel, id: string, name: string): Data; addColumn(model: DatabaseBlockModel, view: Data, newColumn: Column, position: InsertToPosition): void; deleteColumn(model: DatabaseBlockModel, view: Data, id: string): void; }; export declare const defaultGroupBy: (columnId: string, type: string, data: NonNullable) => GroupBy | undefined; export declare const ViewOperationMap: { [K in keyof DatabaseViewDataMap]: ViewOperation; }; export {}; //# sourceMappingURL=view-manager.d.ts.map