type PageInfo = {
    startItem: number;
    endItem: number;
    pageSize: number;
};
type DataListRetriever<T> = {
    ready?: boolean;
    setReady: (state: boolean) => void;
    isLoaded: boolean;
    data: T[] | undefined;
    total?: number;
    next?: (onlyNewRecords?: boolean) => Promise<void>;
    previous?: (onlyNewRecords?: boolean) => Promise<void>;
    search: (search: string) => Promise<void>;
    refresh: () => Promise<void>;
    addAdditionalParameter: (key: string, value: any | null) => void;
    removeAdditionalParameter: (key: string) => void;
    setRefreshedElement: (element: T) => void;
    removeElement: (element: T) => void;
    isSearch: boolean;
    pageInfo?: PageInfo;
};
declare function useDataListRetriever<T>(params: {
    ready?: boolean;
    retriever: (params: any) => Promise<T[]>;
    retrieverParams?: any;
    search?: string;
    addAdditionalParameter?: (key: string, value: any | null) => void;
    requiresSearch?: boolean;
    module: any;
}): DataListRetriever<T>;

export { type DataListRetriever as D, useDataListRetriever as u };
