export declare const SNAPSHOT_KEYS: unique symbol; export interface Snapshottable { /** Per-compound declared observable surface. */ [SNAPSHOT_KEYS]?: readonly string[]; /** * Optional override that takes precedence over `SNAPSHOT_KEYS`. Use * when the snapshot shape is computed (e.g. async-shaped compounds * that want to project a stable `{ status, items }` payload regardless * of internal accessor names). */ snapshot?: () => Record; } /** * Read the declared state surface of a compound API object as a plain * object. Reads are untracked — calling `snapshot(c)` does NOT subscribe * the caller to future state changes; it returns a frozen-in-time view. * * If neither `snapshot()` nor `SNAPSHOT_KEYS` is declared, returns `{}`. * The library does not auto-iterate own properties (see file header). */ export declare function snapshot(c: C): Record; /** * Convenience for declaring `SNAPSHOT_KEYS` with type-safe key names. * Returns the key tuple; use as * * return { ...api, [SNAPSHOT_KEYS]: snapshotKeys('open', 'disabled') }; * * Compile-time check that every passed key exists on the API type. */ export declare function snapshotKeys(...keys: ReadonlyArray): readonly string[]; //# sourceMappingURL=snapshot.d.ts.map