import { type MouseEvent } from 'react'; import type { ColumnViewProps, TableMode } from '../../../types/index.js'; import type { ViewMenuItem, LayoutSection } from '../types'; import type { TableViewOption } from '../types'; export interface UseViewsMenuProps { mode: TableMode; onViewChange?: (selectedView?: ViewMenuItem) => void; onCreateCustomView?: (data: { name: string; selectedColumns: ColumnViewProps[]; layout: LayoutSection; sourceTemplateId?: string; }) => Promise<{ id: string; name: string; } | void>; onEditCustomView?: (viewId: string, data: { name: string; selectedColumns: ColumnViewProps[]; layout: LayoutSection; }) => Promise; onDeleteCustomView?: (viewId: string) => Promise; defaultColumns: ColumnViewProps[]; defaultTemplate?: ViewMenuItem; allTemplates: ViewMenuItem[]; customTemplateCount?: number; } export declare const useViewsMenu: ({ mode, onViewChange, onCreateCustomView, onEditCustomView, onDeleteCustomView, defaultColumns, defaultTemplate, allTemplates, customTemplateCount, }: UseViewsMenuProps) => { anchorEl: HTMLDivElement | null; isCreateDialogOpen: boolean; editingView: ViewMenuItem | null; selectedViewInfo: TableViewOption; shouldUseCurrentState: boolean; selectedView: ViewMenuItem | undefined; currentViewColumns: ColumnViewProps[]; initialColumnsForCreate: ColumnViewProps[] | null; availableColumnsForCreate: ColumnViewProps[] | null; handleViewButtonClick: (event: MouseEvent) => void; handleCloseViewDropdown: () => void; handleSelectedViewInfo: (selected: TableViewOption, viewMenuItem?: ViewMenuItem) => void; handleOpenCreateDialog: (useCurrentState?: boolean, initialColumns?: ColumnViewProps[], availableColumns?: ColumnViewProps[], sourceTemplateId?: string) => void; handleOpenEditDialog: (view: ViewMenuItem) => void; handleCloseCreateDialog: () => void; handleSaveView: (data: { name: string; selectedColumns: ColumnViewProps[]; layout: LayoutSection; }) => Promise; handleDeleteView: (viewId: string) => Promise; };