import type * as Y from 'yjs'; export interface WorkOfficePdfRecordCollectionRoots { presence: Y.Map; fields: Y.Map; order: Y.Array; } export declare function workOfficePdfRecordCollectionRoots(document: Y.Doc, rootName: (suffix: string) => string, name: string): WorkOfficePdfRecordCollectionRoots; export declare function patchWorkOfficePdfRecords(roots: WorkOfficePdfRecordCollectionRoots, previous: readonly T[], next: readonly T[], label: string): void; export declare function readWorkOfficePdfRecords & { id: string; }>(roots: WorkOfficePdfRecordCollectionRoots, label: string): T[]; export declare function assertWorkOfficePdfRecordCollectionEmpty(roots: WorkOfficePdfRecordCollectionRoots): boolean; export declare function workOfficePdfRecordCollectionUndoScope(roots: WorkOfficePdfRecordCollectionRoots): Array | Y.Array>; /** * Reports whether a transaction changed one recursively addressed record * field. This lets format bindings keep an otherwise mutable collection on * the local undo stack while treating selected fields as irreversible. */ export declare function workOfficePdfRecordFieldChanged(transaction: Y.Transaction, roots: WorkOfficePdfRecordCollectionRoots, path: readonly string[]): boolean;