import type { CursorPaginationMeta, CursorPaginationOptions, GetCursorFunction, PageNumberPaginationMeta, PageNumberPaginationOptions, ParseCursorFunction } from './types'; import { Prisma } from '@prisma/client/extension'; type Paginator = (this: T, args?: Prisma.Exact, 'cursor' | 'take' | 'skip'>>) => { withPages: O['pages'] extends { limit: number; } ? , P extends PageNumberPaginationOptions>(options?: TOptions & { limit?: P['limit']; }) => Promise<[ Prisma.Result, PageNumberPaginationMeta ]> : (options: TOptions & { limit: P['limit']; }) => Promise<[ Prisma.Result, PageNumberPaginationMeta ]>; withCursor: O['cursor'] extends { limit: number; } ? , P extends CursorPaginationOptions[number], NonNullable['cursor']>>>(options?: TOptions & { limit?: P['limit']; }) => Promise<[Prisma.Result, CursorPaginationMeta]> : , P extends CursorPaginationOptions[number], NonNullable['cursor']>>>(options: TOptions & { limit: P['limit']; }) => Promise<[Prisma.Result, CursorPaginationMeta]>; }; interface PaginatorOptions { pages?: { limit?: number; includePageCount?: boolean; }; cursor?: { limit?: number; getCursor?: GetCursorFunction; parseCursor?: ParseCursorFunction; }; } export declare function createPaginator(globalOptions?: O): Paginator; export declare const paginate: Paginator; export declare function extension(options?: O): (client: any) => import("@prisma/client/extension").PrismaClientExtends; }; }, {}, {}>>; export {};