import type { WorkSpreadsheetContent } from '../features/work/work-types'; import { type WorkOfficeCollaborationOrigin, type WorkOfficeCollaborationSession } from './office-collaboration'; export interface WorkOfficeSpreadsheetCollaborationChange { content: WorkSpreadsheetContent; local: boolean; origin: unknown; } export interface WorkOfficeSpreadsheetCollaborationBindingOptions { captureTimeoutMs?: number; origin?: WorkOfficeCollaborationOrigin; } export interface WorkOfficeSpreadsheetCollaborationBinding { readonly origin: WorkOfficeCollaborationOrigin; content(): WorkSpreadsheetContent; replace(previous: WorkSpreadsheetContent, next: WorkSpreadsheetContent): boolean; canUndo(): boolean; canRedo(): boolean; undo(): boolean; redo(): boolean; stopCapturing(): void; subscribe(listener: (change: WorkOfficeSpreadsheetCollaborationChange) => void): () => void; subscribeError(listener: (error: unknown) => void): () => void; subscribeHistory(listener: () => void): () => void; destroy(): void; } export declare function initializeWorkOfficeSpreadsheetCollaboration(session: WorkOfficeCollaborationSession, content: WorkSpreadsheetContent): { initialized: boolean; content: WorkSpreadsheetContent; }; export declare function readWorkOfficeSpreadsheetCollaboration(session: WorkOfficeCollaborationSession): WorkSpreadsheetContent; export declare function replaceWorkOfficeSpreadsheetCollaboration(session: WorkOfficeCollaborationSession, previous: WorkSpreadsheetContent, next: WorkSpreadsheetContent, origin?: WorkOfficeCollaborationOrigin): boolean; export declare function createWorkOfficeSpreadsheetCollaborationBinding(session: WorkOfficeCollaborationSession, options?: WorkOfficeSpreadsheetCollaborationBindingOptions): WorkOfficeSpreadsheetCollaborationBinding;