import type { FetchEngineCore } from '../engine/types.ts'; import type { HttpMethods, DictAndT } from '../types.ts'; import { PropertyStore } from './store.ts'; /** * Manages URL parameters for FetchEngine with event emission. * * Wraps PropertyStore with FetchEngine-specific event emission. * Pulls initial params and validation from engine options. * * @template P - Params type * * @example * ```typescript * // Access via engine.params * engine.params.set('apiKey', 'abc123'); * engine.params.set({ page: '1', limit: '10' }); * * // Method-specific params * engine.params.set('format', 'json', 'GET'); * * // Remove params * engine.params.remove('apiKey'); * engine.params.remove(['page', 'limit']); * * // Check if param exists * if (engine.params.has('apiKey')) { ... } * * // Get resolved params for a request * const params = engine.params.resolve('GET', { extra: 'value' }); * ``` */ export declare class ParamsManager

{ constructor(engine: FetchEngineCore); /** * Set a param value globally or for a specific method. * * @example * ```typescript * engine.params.set('apiKey', 'abc123'); * engine.params.set('format', 'json', 'GET'); * ``` */ set(key: string, value: string, method?: HttpMethods): void; /** * Set multiple param values globally or for a specific method. * * @example * ```typescript * engine.params.set({ page: '1', limit: '10' }); * engine.params.set({ format: 'json' }, 'GET'); * ``` */ set(params: Partial>, method?: HttpMethods): void; /** * Remove a param globally or for a specific method. * * @example * ```typescript * engine.params.remove('apiKey'); * engine.params.remove('format', 'GET'); * ``` */ remove(key: string, method?: HttpMethods): void; /** * Remove multiple params globally or for a specific method. * * @example * ```typescript * engine.params.remove(['page', 'limit']); * engine.params.remove(['format'], 'GET'); * ``` */ remove(keys: string[], method?: HttpMethods): void; /** * Check if a param exists globally or for a specific method. * * @example * ```typescript * if (engine.params.has('apiKey')) { * console.log('API key is set'); * } * ``` */ has(key: string, method?: HttpMethods): boolean; /** * Resolve the final params for a specific method. * * Merges in order: defaults → method overrides → request overrides. * * @example * ```typescript * const params = engine.params.resolve('GET', { extra: 'value' }); * ``` */ resolve(method: HttpMethods, requestOverrides?: Partial>): DictAndT

; /** * Get the default params (without method overrides). */ get defaults(): DictAndT

; /** * Get all params including method overrides. * * @example * ```typescript * const all = engine.params.all; * // { default: { apiKey: '...' }, get: { format: '...' } } * ``` */ get all(): { default: DictAndT

; } & Record>>; /** * Get method-specific params only (not merged with defaults). */ forMethod(method: HttpMethods): Partial>; /** * Get the underlying PropertyStore for internal use. * * Exposed for FetchEngineCore compliance. Internal components * (executor, policies) access the store directly for resolution. * * @internal */ get $store(): PropertyStore>; }