import type { Presence } from '@fortune-sheet/core'; import type { WorkbookInstance } from '@fortune-sheet/react'; import type { WorkOfficeCollaborationParticipant } from '../../../collaboration/office-collaboration-presence'; import type { WorkSpreadsheetContent } from '../work-types'; export declare function useSpreadsheetCollaborationPresenceProjection({ content, frameCell, workbook, /** Bumped after in-place sheet sync so Fortune re-draws overlays it cleared. */ refreshKey, }: { content: WorkSpreadsheetContent; /** Cell named by the collaboration frame that just wrote it. */ frameCell?: SpreadsheetFrameCell | null; workbook: WorkbookInstance | null; refreshKey?: number; }): void; export interface SpreadsheetFrameCell { readonly sheetId: string; readonly row: number; readonly column: number; } /** * Highlight for the cell a collaboration frame just wrote. A follow-up * location is ignored. The same cell produces the same presence, so an * unchanged update does not remove and re-add the overlay. */ export declare function spreadsheetWrittenCellProjection(content: WorkSpreadsheetContent, cell: SpreadsheetFrameCell | null, followUpLocation?: unknown): Presence[]; export declare function spreadsheetPresenceProjection(content: WorkSpreadsheetContent, participants: readonly WorkOfficeCollaborationParticipant[]): Presence[];