import type { FilterInput, Filters, FilterValue } from '../../types/filters.type';
export type AddFilterValueOptions = {
    /**
     * @description
     * The filters collection.
     */
    filters: Filters;
    /**
     * @description
     * The name of the filter which should be updated.
     */
    name: string;
    /**
     * @description
     * The value that is being added to the given filter name.
     */
    value: FilterValue;
    /**
     * A hook that is fired before the value is added to the collection.
     *
     * Consumers can use this to perform any kind of side-effects or validation.
     */
    onBeforeAdd?: (input: FilterInput) => void;
    /**
     * A hook that is fired after the value is added to the collection.
     *
     * Consumers can use this to perform any kind of side-effects.
     */
    onAfterAdd?: (input: FilterInput) => void;
};
/**
 * @description
 * Use this helper to add a new filter value for the specified filter name while ensuring no duplicates are added.
 *
 * Comparison checks are performed as follows:
 * - Object values are serialized into strings for accurate comparison.
 * - Primitives values (strings, numbers, etc.) are compared directly without serialization.
 */
export declare const addFilterValue: (options: AddFilterValueOptions) => Filters;
