export type UnknownFieldClock = { kind: "unknown"; }; export type RevisionFieldClock = { kind: "revision"; revision: bigint; }; export type FieldClock = UnknownFieldClock | RevisionFieldClock; export type CanonicalFieldValue = { value: T; clock: FieldClock; }; export type PendingFieldWrite = { clientMutationId: string; sequence: number; value: T; }; export type RegisterFieldState = { canonical: CanonicalFieldValue; visible: T; pending: PendingFieldWrite[]; nextPendingSequence: number; }; export type FieldApplyResult = { accepted: boolean; canonicalChanged: boolean; pendingChanged: boolean; visibleChanged: boolean; }; export declare const unknownFieldClock: () => FieldClock; export declare const revisionFieldClock: (revision: string | number | bigint | undefined | null) => FieldClock; export declare const fieldClockToRevisionString: (clock: FieldClock) => string; export declare const compareFieldClocks: (left: FieldClock, right: FieldClock) => "older" | "same" | "newer" | "unknown"; export declare const sameFieldClock: (left: FieldClock, right: FieldClock) => boolean; export declare const createRegisterFieldState: (initial: CanonicalFieldValue) => RegisterFieldState; export declare const applyCanonicalFieldValue: (state: RegisterFieldState, incoming: CanonicalFieldValue, clientMutationId?: string) => FieldApplyResult; export declare const beginLocalFieldWrite: (state: RegisterFieldState, clientMutationId: string, value: T) => FieldApplyResult; export declare const failLocalFieldWrite: (state: RegisterFieldState, clientMutationId: string) => FieldApplyResult;