/**
* JQHTML Data Proxy System
*
* Extracted from component.ts - handles:
* - Data freeze/unfreeze enforcement via Proxy
* - Detached on_load() / on_load_error() execution with restricted access
*/
/**
* `this.data[RAW_DATA]` is the RAW object behind the freeze proxy. Framework code
* that only READS the whole of this.data (serializing it for change detection) goes
* through it, so it does not build a read-only wrapper for every nested object it
* walks while this.data is frozen. A symbol: no key in author data can collide with
* it, and Object.keys / for..in / JSON never see it.
*/
export declare const RAW_DATA: unique symbol;
/**
* Set up the `this.data` property on a component using Object.defineProperty
* with a Proxy that enforces freeze/unfreeze semantics.
*
* After setup:
* - `this.data` reads/writes go through a Proxy
* - When `component.__data_frozen === true`, every mutation route throws: assignment,
* delete, Object.defineProperty, Object.setPrototypeOf, Object.preventExtensions /
* seal / freeze - on this.data and, through the read-only wrappers, on anything
* nested in it. A property descriptor's value is the read-only wrapper too.
* - When frozen is false, writes pass through normally
*
* @param component - The component instance to set up data on
*/
export declare function setup_data_property(component: any): void;
/**
* `this[LOAD_HOOK_OWNER]` on the restricted `this` of on_load()/on_load_error() is the
* real component. Framework code reached from inside the hook - the base
* on_load_error(), called by an override through super - uses it to name the
* component. A module symbol: author code cannot reach it, and the restriction on
* every other property stays in force.
*/
export declare const LOAD_HOOK_OWNER: unique symbol;
/**
* Execute on_load() in a detached context with restricted access (see
* create_detached_context()).
*
* @param component - The component instance
* @param dedup_key - The dedup key captured by the caller, or null to run uncoordinated.
* The key is passed in rather than recomputed because args may legally
* change while on_load() runs, and a recomputed key would address a
* different entry than the one this leader registered.
* @returns The resulting data and optional coordination completion function
*/
export declare function execute_on_load_detached(component: any, dedup_key?: string | null): Promise<{
data: Record;
complete_coordination: ((final_text: string | null) => void) | null;
}>;
/**
* Execute an on_load_error() override in the same detached context as on_load(): read
* this.args, write this.data (starting again from the on_create() snapshot), nothing
* else. Never coordinated - fallback data is never handed to deduplication followers.
*
* @returns The data the hook left in this.data (the fallback); throws what the hook throws
*/
export declare function execute_on_load_error_detached(component: any, error: any): Promise>;
//# sourceMappingURL=data-proxy.d.ts.map