import { ComponentProps } from 'react';
import { AsideFilters, OptionType } from '../components';
export interface IFilterBaseStore<Name extends string = string> {
    setFilter: (filter: Name, data: Record<string, string | boolean | OptionType[]>) => void;
    restFilter: (filter: Name) => void;
    setOptions: (filter: Name, options: Record<string, TConfigFilter[string]['config']>) => void;
}
export type TFilterState<Data = {}> = {
    values: Partial<Data>;
    config: TConfigFilter;
};
export type TConfigFilter = ComponentProps<typeof AsideFilters>['filter']['inputs'];
/**
 * Creates a filter store with the given configuration and initial state.
 *
 * @template Names - The type of filter names.
 * @template S - The type of the filter state.
 * @template Options - The type of options for the filters.
 *
 * @param {Record<Names, TConfigFilter>} configFilters - The configuration for the filters.
 * @param {S} filterState - The initial state of the filters.
 */
export declare const setFilterStore: <Names extends string, S extends Record<Names, TFilterState>>(configFilters: Record<Names, TConfigFilter>, filterState: S) => import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<S & IFilterBaseStore<Names>>, "setState"> & {
    setState<A extends string | {
        type: string;
    }>(partial: (S & IFilterBaseStore<Names>) | Partial<S & IFilterBaseStore<Names>> | ((state: S & IFilterBaseStore<Names>) => (S & IFilterBaseStore<Names>) | Partial<S & IFilterBaseStore<Names>>), replace?: boolean | undefined, action?: A | undefined): void;
}>;
//# sourceMappingURL=useFilterStore.d.ts.map