import type { Store } from '../state' import type { Emitter } from '../events' import type { GridColumnApi } from './column' import { createColumnApi } from './column' import type { GridDragApi } from './drag' import { createDragApi } from './drag' import type { GridSelectionApi } from './selection' import { createSelectionApi } from './selection' import type { GridTreeApi } from './tree' import { createTreeApi } from './tree' import type { GridFocusApi } from './focus' import { createFocusApi } from './focus' import type { GridNavigationApi } from './navigation' import { createNavigationApi } from './navigation' import type { GridEditApi } from './edit' import { createEditApi } from './edit' import type { GridActionsMenuApi } from './actions-menu' import { createActionsMenuApi } from './actions-menu' import type { GridScrollApi } from './scroll' import { createScrollApi } from './scroll' import { createRangeSelectionApi } from './range-selection' import type { GridRangeSelectionApi } from './range-selection' import type { GridContentApi } from './content' import { createContentApi } from './content' export type GridFullApi = { content: GridContentApi selection: GridSelectionApi rangeSelection: GridRangeSelectionApi drag: GridDragApi tree: GridTreeApi column: GridColumnApi focus: GridFocusApi navigation: GridNavigationApi edit: GridEditApi scroll: GridScrollApi actionsMenu: GridActionsMenuApi } export type GridApi = Omit export type SpreadsheetGridApi = Omit export function createApi(store: Store, events: Emitter): GridFullApi { return { content: createContentApi(store, events), selection: createSelectionApi(store, events), rangeSelection: createRangeSelectionApi(store, events), tree: createTreeApi(store, events), drag: createDragApi(store, events), column: createColumnApi(store, events), focus: createFocusApi(store, events), navigation: createNavigationApi(store, events), edit: createEditApi(store, events), scroll: createScrollApi(store, events), actionsMenu: createActionsMenuApi(store, events), } }