import { StoreApi } from 'zustand'; import { Column, ColumnId, ColumnStore, Data, IFilter } from './../../common/interfaces'; import { BeastGridConfig, BeastMode, ColumnDef, Coords, OnChanges, PinType, PivotConfig, SelectedCells, SideBarConfig, SortType, TreeConstructor } from '../../common'; export interface PivotState { columns: Column[]; rows: Column[]; values: Column[]; data: Data; enabled: boolean; columnTotals: boolean; rowTotals: boolean; rowGroups: boolean; tree: { enabled: boolean; name: string; }; snapshotBeforePivot: number; } export interface DynamicState { sort: ColumnId[]; groupOrder: ColumnId[]; columns: ColumnStore; pivotData?: Data; groupData?: Data; topRows?: Data; bottomRows?: Data; isGrouped?: boolean; isPivoted?: boolean; sortedColumns: Column[]; hiddenColumns: ColumnId[]; initialColumns: ColumnStore; filters: Record; pivot?: Partial; historyPoint: number; } export interface GridState extends DynamicState { edited: boolean; initialized: boolean; data: Data; theme: string; container: HTMLDivElement; defaultColumnDef: Partial | undefined; allowMultipleColumnSort: boolean; tree: Partial | undefined; loading: boolean; sorting: boolean; scrollElement: HTMLDivElement; sideBarConfig: SideBarConfig | null; selectedCells: SelectedCells | null; selecting: boolean; mode: BeastMode; snapshots: DynamicState[]; haveChanges: boolean; onChanges?: OnChanges; } export interface GridStore extends GridState { setData: (data: Data, pivot?: PivotConfig) => void; setColumns: (columns: ColumnStore) => void; updateConfig: (columnDefs: ColumnDef[], pivotConfig?: PivotConfig) => void; setTheme: (theme: string) => void; setScrollElement: (container: HTMLDivElement) => void; setColumn: (args: { id: string; column: Column; }) => void; hideColumn: (id: ColumnId) => void; cleanColumns: () => void; swapColumns: (id1: ColumnId, id2: ColumnId) => void; resizeColumn: (id: ColumnId, width: number) => void; groupByColumn: (id: ColumnId) => void; unGroupColumn: (id: ColumnId) => void; resetColumnConfig: (id: ColumnId) => void; changeSort: (id: ColumnId, multipleColumnSort: boolean) => void; setSort: (sort: ColumnId, sortType: SortType, multipleColumnSort: boolean) => void; setLoading: (loading: boolean) => void; setSorting: (sorting: boolean) => void; addFilter: (id: ColumnId, value: IFilter | null, idx?: number) => void; selectAllFilters: (id: ColumnId, options: IFilter[]) => void; pinColumn: (id: ColumnId, pin: PinType) => void; setSideBarConfig: (config: SideBarConfig | null) => void; updateSelectedCells: (selected: SelectedCells | null) => void; setSelectedStart: (selected: Coords) => void; setSelectedEnd: (selected: Coords) => void; setSelecting: (selecting: boolean) => void; setMode: (mode: BeastMode) => void; setPivot: (pivot: Partial | null) => void; setInitialPivot: (pivot: PivotConfig) => void; restore: () => void; updateColumnVisibility: (scrollLeft: number) => void; autoSizeColumns: () => void; saveState: () => void; clearHistory: () => void; undo: () => void; redo: () => void; } export declare const createGridStore: ({ data: _data, columnDefs, defaultColumnDef, sort, tree, mode, pivot: _pivot }: BeastGridConfig, container: HTMLDivElement, theme: string, onChanges?: OnChanges) => import("zustand").UseBoundStore>; export type TGridStore = () => StoreApi;