import { default as React } from 'react'; import { RuleGroupType } from 'react-querybuilder'; import { MaterialTableColumnProps } from '../components/material-table/material-table'; export type ViewType = 'Table' | 'Grid' | 'Kanban' | 'Calendar' | 'Gantt' | ''; interface SchemaFields { select: string; alias: string; type: string; filter_type?: string; filter_name?: string; required?: boolean; isOrderAllowed?: boolean; isDefault?: boolean; isFilterAllowed?: boolean; label?: string; key: string; accessorKey?: string; joinKey?: string; enum?: string | string[]; } export interface SavedViewType { label: ViewType; position: number; } export interface PageState { _id: string | number; name: string; page_size: number; column_order: string[]; visible_columns: MaterialTableColumnProps[]; views: SavedViewType[]; active_view: ViewType; filters: RuleGroupType; filterQueryString: string; sort: Record | null; search: string; enabled_views: ViewType[]; isShared: boolean; column_sizes: Record; } export interface GeneratedColumnsState { columns: MaterialTableColumnProps[]; orderKeys: string[]; } export declare const initialFilter: RuleGroupType; interface PageContextValue { pageTemplateId: string; activePage: PageState; updatePageInfo: (updates: Partial) => void; loading: boolean; isSaving: boolean; error: string | null; pages: any[]; savePages: () => void; setActivePage: (data: any) => void; setPages: React.Dispatch; schemaFields: SchemaFields[]; initializeColumns: (columns: MaterialTableColumnProps[]) => void; generatedColumns: GeneratedColumnsState; sharedPages: any[]; updateGeneratedColumns: (updates: Partial) => void; formData: Record; setFormData: (data: Record) => void; setIsCreatePage: (isCreatePage: boolean) => void; customRouteToResourceMap?: Record; } export declare const defaultPageState: PageState; interface PageProviderProps { children: React.ReactNode; routeToColumnsMap?: Record; routeToResourceMap?: Record; } export declare const PageContext: React.Context; export declare const PageProvider: React.FC; export declare const usePageContext: () => PageContextValue; export {};