import { StringKeyedObject, YjsProxiableValue } from './types'; import * as Y from "yjs"; /** * Checks if a value is object-like (not null and type is 'object'). * * @param value The value to check. * @returns `true` if the value is object-like, `false` otherwise. */ export declare function isObjectLike(value: unknown): value is object; /** * Checks if a value is a plain JavaScript object. * * @param value The value to check. * @returns `true` if the value is a plain object, `false` otherwise. */ export declare function isPlainObject(value: unknown): value is StringKeyedObject; /** * Checks if a Y.js value has been deleted or its document destroyed. * * @param yjsValue The Y.js value to check. * @returns `true` if the value is deleted or destroyed, `false` otherwise. */ export declare function isYjsValueDeleted(yjsValue: Y.AbstractType): boolean; /** * Executes a function within a Y.js transaction if the value is attached to a document. * * @param yjsValue The Y.js value to check for a document. * @param fn The function to execute. * @param origin Optional transaction origin for tracking. * @returns The result of the function. */ export declare function transactIfPossible(yjsValue: YjsProxiableValue, fn: () => T, origin?: unknown): T; /** * Deeply freezes a plain object or array. * * @param obj The object or array to freeze. * @returns The frozen object or array. */ export declare function deepFreeze(obj: T): T;