import type { ConsentStoreState } from '../../store/type'; type SetState = (partial: Partial) => void; type GetState = () => ConsentStoreState; /** * Creates a network blocker manager that integrates with the main consent store. * * @remarks * The returned methods are designed to be spread into the * {@link ConsentStoreState} and provide network-blocking behavior for both * `fetch` and `XMLHttpRequest` based on the current consent snapshot. * * This helper is browser-only and will no-op when `window` is undefined. * * @param get - Store getter used to read the current consent state and * configuration * @param _set - Store setter used to update `networkBlocker` configuration * @returns An object with network blocker lifecycle methods to merge into * the store * * @internal */ export declare function createNetworkBlockerManager(get: GetState, _set: SetState): { /** * Initializes the network blocker by patching global fetch and XHR. * * @remarks * - No-ops when running in non-browser environments * - No-ops when network blocking is disabled or no rules are * configured * - Takes a snapshot of the current `consents` state that is used * for all subsequent blocking decisions until updated via * {@link ConsentStoreState.updateNetworkBlockerConsents} * * Safe to call multiple times; initialization runs only once per * page lifecycle. */ initializeNetworkBlocker: () => void; /** * Updates the consent snapshot used by the network blocker. * Intended to be called after script teardown has completed so that * teardown network calls are not blocked. */ updateNetworkBlockerConsents: () => void; /** * Updates the network blocker configuration at runtime. * When enabling the blocker, this will initialize it if needed. * When disabling, this will restore the original browser APIs. * * @param config - New network blocker configuration to apply */ setNetworkBlocker: (config: ConsentStoreState["networkBlocker"]) => void; /** * Destroys the network blocker and restores the original browser APIs. * * @remarks * Restores the original `fetch` and `XMLHttpRequest` implementations * and clears the internal consent snapshot. Safe to call multiple * times and in non-browser environments. */ destroyNetworkBlocker: () => void; }; export {};