import { Ref } from 'vue'; export interface IServerSearchData { filters: Record; dates: IDateSpan; limit?: number; relationships: string; search?: string; sorts?: string; page?: number; } interface IServerSearchOptions { manual?: boolean; mainDateField?: string; } interface IDateSpan { startDate: Date | null; endDate?: Date | null; } interface ISearchState { filters: Record; dates: IDateSpan; sorts: string; limit: number; relationships: string; search?: string; page?: number; } export interface InertiaRouterType { get: (url: string, data: Partial> | undefined, config: Partial>) => void; } export type UrlChangeCallback = (urlParams: string, UpdateSearch?: (params: string) => void) => Promise; export declare const filterParams: (mainDateField: string, externalFilters: Record, dates: IDateSpan) => string; export declare const getGroupParams: (groupValue: string) => string; export declare const getRelationshipsParams: (relationships: string) => string; export declare const getPaginationParams: (state: ISearchState) => string | 0 | undefined; export declare const parseParams: (state: ISearchState) => string; export declare const useServerSearch: (serverSearchData: Ref>, options?: IServerSearchOptions, onUrlChange?: UrlChangeCallback, router?: InertiaRouterType) => { state: { filters: Record; dates: { startDate: Date | null; endDate?: (Date | null) | undefined; }; sorts: string; limit: number; relationships: string; search?: string | undefined; page?: number | undefined; }; hasFilters: import('vue').ComputedRef; executeSearch: (delay?: number) => void; updateSearch: (urlParams: string) => void; changeSize: (limit: number) => void; paginate: (page: number) => void; reset: () => void; executeSearchWithDelay: (delay?: number) => void; }; export {};