import { default as React } from 'react'; import { LiveQueryData, Sheet, WorkbookInstance } from '../../sheet-engine/react'; import { IndexeddbPersistence } from 'y-indexeddb'; import { DataBlockApiKeyHandlerType, SheetUpdateData } from '../types'; import { CollaborationProps, CollabState, CollabUser } from '../../sync-local/types'; import { Awareness } from 'y-protocols/awareness'; import * as Y from 'yjs'; export interface EditorContextType { setIsDataLoaded: React.Dispatch>; handleOnChangePortalUpdate: () => void; setSelectedTemplate?: React.Dispatch>; setShowSmartContractModal?: React.Dispatch>; getDocumentTitle?: (dsheetId: string) => Promise; updateDocumentTitle?: (title: string) => void; isAuthorized: boolean; dataBlockCalcFunction: { [key: string]: { [key: string]: any; }; }; setDataBlockCalcFunction: React.Dispatch>; refreshIndexedDB: () => Promise; sheetEditorRef: React.MutableRefObject; ydocRef: React.MutableRefObject; persistenceRef: React.MutableRefObject; sheetData: Sheet[]; setSheetData: React.Dispatch>; currentDataRef: React.MutableRefObject; remoteUpdateRef: React.MutableRefObject; handleChange: (data: Sheet[]) => void; initialiseLiveQueryData: (data: Sheet[]) => void; loading: boolean; forceSheetRender: number; setForceSheetRender: React.Dispatch>; syncStatus: 'initializing' | 'syncing' | 'synced' | 'error'; collabEnabled?: boolean; collabIsOwner?: boolean; collabState?: CollabState; isCollabReady?: boolean; isCollabSyncing?: boolean; hasCollabContentInitialised?: boolean; awareness?: Awareness | null; terminateSession?: () => void; onCollaboratorsChange?: (collaborators: CollabUser[]) => void; handleLiveQuery: (subsheetIndex: number, data: LiveQueryData) => void; } interface EditorProviderProps { allowComments?: boolean; setSelectedTemplate?: React.Dispatch>; setShowSmartContractModal?: React.Dispatch>; getDocumentTitle?: (dsheetId: string) => Promise; updateDocumentTitle?: (title: string) => void; isAuthorized: boolean; children: React.ReactNode; dsheetId: string; username?: string; portalContent?: string; enableIndexeddbSync?: boolean; isReadOnly?: boolean; onChange?: (data: SheetUpdateData, encodedUpdate?: string) => void; collaboration?: CollaborationProps; externalEditorRef?: React.MutableRefObject; commentData?: object; editorStateRef?: React.MutableRefObject<{ refreshIndexedDB: () => Promise; terminateSession?: () => void; updateCollaboratorName?: (name: string) => void; rehydrateAfterCollabSync?: (reason?: string) => boolean; } | null>; enableLiveQuery?: boolean; liveQueryRefreshRate?: number; dataBlockApiKeyHandler?: DataBlockApiKeyHandlerType; } export declare const EditorProvider: React.FC; export declare const useEditor: () => EditorContextType; export {};