/// <reference types="react" />
import { QueryKey } from '@tanstack/react-query';
import { QueryConfig } from '../../../lib';
import { BaseEntry, PaginationFilter, PaginationResponse, SearchFilter } from '../../../types';
export declare const searchPagination: <SearchPaginationDTO extends PaginationFilter, Entry extends unknown>(url: string, data: SearchPaginationDTO, searchFilter?: SearchFilter | undefined) => Promise<PaginationResponse<Entry>>;
export declare type QueryFnType<Entry extends BaseEntry | any> = (...args: any) => Promise<PaginationResponse<Entry>>;
export declare type UseSearchPaginationProps<SearchPaginationDTO extends PaginationFilter, Entry extends BaseEntry | any, TQueryKey extends QueryKey = QueryKey> = {
    queryKeyName: TQueryKey;
    url: string;
    searchData: SearchPaginationDTO;
    config?: QueryConfig<QueryFnType<Entry>>;
};
export declare const useSearchPagination: <SearchPaginationDTO extends PaginationFilter, Entry extends unknown, TGenerics extends {
    Params: {
        userId: string;
        logId: string;
        roleId: string;
        key: string;
        Id: string;
        rememberMe: string;
        returnUrl: string;
        clientId: string;
        email: string;
        userName: string;
        loginProvider: string;
    };
    Search: {
        pagination: import('../../../providers').SearchPagination;
        returnUrl: string;
        errorId: string;
        logoutId: string;
        searchFilter: SearchFilter;
    };
    RouteMeta: {
        breadcrumb: (params: {
            userId: string;
            logId: string;
            roleId: string;
            key: string;
            Id: string;
            rememberMe: string;
            returnUrl: string;
            clientId: string;
            email: string;
            userName: string;
            loginProvider: string;
        }) => string | import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
    };
} = {
    Params: {
        userId: string;
        logId: string;
        roleId: string;
        key: string;
        Id: string;
        rememberMe: string;
        returnUrl: string;
        clientId: string;
        email: string;
        userName: string;
        loginProvider: string;
    };
    Search: {
        pagination: import('../../../providers').SearchPagination;
        returnUrl: string;
        errorId: string;
        logoutId: string;
        searchFilter: SearchFilter;
    };
    RouteMeta: {
        breadcrumb: (params: {
            userId: string;
            logId: string;
            roleId: string;
            key: string;
            Id: string;
            rememberMe: string;
            returnUrl: string;
            clientId: string;
            email: string;
            userName: string;
            loginProvider: string;
        }) => string | import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
    };
}, TQueryKey extends QueryKey = QueryKey>({ queryKeyName, url, searchData, config, }: UseSearchPaginationProps<SearchPaginationDTO, Entry, TQueryKey>) => import("@tanstack/react-query").UseQueryResult<PaginationResponse<Entry>, unknown>;
export declare const setSearchFilter: <SearchPaginationDTO extends PaginationFilter>(searchData: SearchPaginationDTO, searchFilter?: SearchFilter | undefined) => SearchPaginationDTO;
//# sourceMappingURL=useSearchPagination.d.ts.map