export interface ClonePlainDataOptions { /** Name of the root value; error paths start with it (`transaction.raw_data.contract[0]`). */ root: string; /** Builds the error thrown for a value that cannot be cloned. */ invalid: (reason: string, path: string) => Error; /** Copy `Uint8Array` values into fresh `Uint8Array`s instead of rejecting them. */ bytes?: boolean; } /** * Deep-clones JSON-shaped data — primitives, `bigint`, arrays and plain objects, plus * `Uint8Array` when `bytes` is set — into fresh plain objects and arrays. Unlike a JSON * round-trip it keeps `bigint` and `undefined` values as they are. * * Anything else (functions, symbols, class instances, `Date`, `Map`, ...), circular * references and nesting deeper than `MAX_DEPTH` levels are rejected with the error built * by `options.invalid(reason, path)`. Values from another realm (an iframe, a vm context) * are accepted like local ones. */ export declare function clonePlainData(value: T, options: ClonePlainDataOptions): T; /** * Deep-clones a transaction into fresh plain objects and arrays. Unlike a JSON round-trip * it keeps `bigint` and `undefined` values as they are. * * Transaction data is JSON-shaped plus `bigint`: primitives, arrays and plain objects. * Anything else (functions, symbols, `Date`, `Map`, typed arrays, ...) and circular * references are rejected with `Invalid transaction provided: at `. */ export declare function cloneTransaction(transaction: T): T;