import { QueryParams } from './types'; /** * Query parameter serialization options */ export interface QuerySerializationOptions { /** Array serialization format */ arrayFormat: 'brackets' | 'indices' | 'repeat' | 'comma'; /** Encode keys */ encodeKeys: boolean; /** Encode values */ encodeValues: boolean; /** Skip null values */ skipNull: boolean; /** Skip undefined values */ skipUndefined: boolean; /** Allow dots in keys for nested objects */ allowDots: boolean; /** Custom serializer for complex types */ serialize?: (key: string, value: unknown) => string | null; } /** * Default serialization options */ export declare const DEFAULT_SERIALIZATION_OPTIONS: QuerySerializationOptions; /** * Serialize query parameters to URL search string * * @example * ```typescript * serializeQueryParams({ page: 1, tags: ['a', 'b'] }) * // Returns: 'page=1&tags[]=a&tags[]=b' * * serializeQueryParams({ page: 1, tags: ['a', 'b'] }, { arrayFormat: 'comma' }) * // Returns: 'page=1&tags=a,b' * ``` */ export declare function serializeQueryParams(params: QueryParams, options?: Partial): string; /** * Parse query string to parameters object * * @example * ```typescript * parseQueryParams('page=1&tags[]=a&tags[]=b') * // Returns: { page: '1', tags: ['a', 'b'] } * ``` */ export declare function parseQueryParams(queryString: string): QueryParams;