/** * Deep snapshot of `root` under the plain-JSON-data rule documented above. Each entry * point named in that doc comment calls this on each record argument, before any other * read of that argument, and runs all later logic on the snapshot only. */ export declare function snapshotPlainData(root: unknown): unknown; /** * Checked, descriptor-only read of a chain container: the argument to * verifyAuthorityDelegationChain and to InMemoryAuthorityBudgetLedger.reserve. The * container itself is not record content, so it is checked for shape and read here * without being copied through snapshotPlainData; both of those entry points still * snapshot each member this returns, on its own, through snapshotPlainData, before any * other read of that member. * * Returns the container's own members, in their original order, each read exactly once * through its own property descriptor, when `value` is an exact plain array by the same * rule plainArrayLength() applies to an array inside a record: never a Proxy, at any * point this function inspects, including as `value` itself; its prototype is the * Array.prototype of some realm by the same realm-intrinsic identity; it carries no own * symbol-keyed property and no own callable or accessor "toJSON"; its length, read once * through its own descriptor, is between `minLength` and `maxLength` inclusive, and that * bound is checked before any index of `value` is read; and every index is an own * enumerable data property. An own property that is neither an index nor "length" is * ignored here as it is left out of the snapshot there. Returns null on any other shape, * and on any exception raised while inspecting `value`; the caller then gives exactly * the result a non-array chain gives. */ /** Why a container could not be read. `over-ceiling` is the one case that is not a * defect in the caller's value: the container is a plain array of plain-data members * and simply holds more of them than this implementation will judge. A caller must be * able to tell the two apart without ever touching the raw value itself, which is the * whole point of this module: `Array.isArray` on a revoked Proxy throws. */ export type PlainDataChainRejection = 'not-a-container' | 'over-ceiling'; export declare function readPlainDataChainContainer(value: unknown, minLength: number, maxLength: number, rejection?: { reason: PlainDataChainRejection; }): unknown[] | null; //# sourceMappingURL=plain-data.d.ts.map