import { Getter } from '@prefecthq/prefect-design'; import { SubscriptionOptions } from '@prefecthq/vue-compositions'; import { ComputedRef, MaybeRef, Ref } from 'vue'; import { UseSubscriptions } from '../compositions/useSubscriptions'; type PaginationFilter = { limit?: number; offset?: number; }; type PaginationParameters = [filter?: PaginationFilter, ...any[]]; type PaginationFetchAction = (...parameters: PaginationParameters) => Promise; type PaginationCountAction = (...parameters: PaginationParameters) => Promise; export type PaginationOptions = SubscriptionOptions & { mode?: 'page' | 'infinite'; page?: MaybeRef; }; export type UsePaginationParameters | null>, TCount extends PaginationCountAction, TCountParameters extends Getter | null>> = { fetchMethod: TFetch; fetchParameters: TFetchParameters; countMethod: TCount; countParameters: TCountParameters; options?: PaginationOptions; }; export type UsePaginationEntity = Omit, 'results'> & { [P in TProperty]: ComputedRef>>; }; export type UsePagination = { subscriptions: UseSubscriptions undefined)>['subscriptions']; results: ComputedRef>>; total: ComputedRef; pages: ComputedRef; page: Ref; next: () => void; previous: () => void; }; export declare function usePagination | null>, TCount extends PaginationCountAction, TCountParameters extends Getter | null>>({ fetchMethod, fetchParameters: fetchParametersGetter, countMethod, countParameters: countParametersGetter, options, }: UsePaginationParameters): UsePagination; export {};