import type { FetchEngineCore } from '../engine/types.ts'; /** * Manages instance state for FetchEngine with event emission. * * Provides a clean API for getting, setting, and resetting state * with automatic event emission on mutations. Validation is pulled * from engine options, not passed as a constructor parameter. * * @template S - State type * * @example * ```typescript * // Access via engine.state * engine.state.set('authToken', 'bearer-123'); * engine.state.set({ user: 'john', role: 'admin' }); * * const state = engine.state.get(); * console.log(state.authToken); * * engine.state.reset(); * ``` */ export declare class FetchState { constructor(engine: FetchEngineCore); /** * Get a deep clone of the current state. * * Returns a cloned copy to prevent external mutations. * * @example * ```typescript * const state = engine.state.get(); * console.log(state.authToken); * ``` */ get(): S; /** * Set state by key-value or by partial object merge. * * Emits 'state-set' event after successful update. * * @example * ```typescript * // Set single property * engine.state.set('authToken', 'bearer-123'); * * // Merge multiple properties * engine.state.set({ user: 'john', role: 'admin' }); * ``` */ set(key: K, value: S[K]): void; set(partial: Partial): void; /** * Reset state to empty object. * * Emits 'state-reset' event after reset. * * @example * ```typescript * engine.state.reset(); * console.log(engine.state.get()); // {} * ``` */ reset(): void; /** * Internal method to set state directly without events. * Used during engine initialization. * @internal */ _setDirect(state: S): void; }