import { type MaybePromise, type SchemaTypes } from '@pothos/core'; export declare function formatCursorChunk(value: unknown): string; export declare function formatPrismaCursor(record: Record, fields: string[] | string): string; export declare function cursorFormatter(fields: string[] | string): (value: Record) => string; export declare function parsePrismaCursor(cursor: unknown): unknown; export declare function parseID(id: string, dataType: string): unknown; export declare function getDefaultIDSerializer(modelName: string, fieldName: string, builder: PothosSchemaTypes.SchemaBuilder): (parent: Record) => unknown; export declare function getDefaultIDParser(modelName: string, fieldName: string, builder: PothosSchemaTypes.SchemaBuilder): (id: string) => unknown; export declare function serializeID(id: unknown, dataType: string): string; export declare function parseCompositeCursor(fields: readonly string[]): (cursor: unknown) => Record; export interface PrismaCursorConnectionQueryOptions { args: PothosSchemaTypes.DefaultConnectionArguments; ctx: {}; defaultSize?: number | ((args: {}, ctx: {}) => number); maxSize?: number | ((args: {}, ctx: {}) => number); parseCursor: (cursor: string) => Record; } interface ResolvePrismaCursorConnectionOptions extends PrismaCursorConnectionQueryOptions { parent?: unknown; query: {}; totalCount?: number | (() => MaybePromise); } export declare function prismaCursorConnectionQuery({ args, ctx, maxSize, defaultSize, parseCursor, }: PrismaCursorConnectionQueryOptions): { take: number; skip: number; cursor?: undefined; } | { cursor: Record; take: number; skip: number; }; export declare function wrapConnectionResult(parent: unknown, results: readonly T[], args: PothosSchemaTypes.DefaultConnectionArguments, take: number, cursor: (node: T) => string, totalCount?: number | (() => MaybePromise) | null, resolveNode?: (node: unknown) => unknown): { parent: unknown; args: PothosSchemaTypes.DefaultConnectionArguments; totalCount: number | (() => MaybePromise) | null | undefined; edges: ({ cursor: string; node: unknown; } | null)[]; pageInfo: { startCursor: string | null; endCursor: string | null; hasPreviousPage: boolean; hasNextPage: boolean; }; }; export declare function resolvePrismaCursorConnection(options: ResolvePrismaCursorConnectionOptions, cursor: (node: T) => string, resolve: (query: { include?: object; cursor?: object; take: number; skip: number; }) => MaybePromise): Promise<{ parent: unknown; args: PothosSchemaTypes.DefaultConnectionArguments; totalCount: number | (() => MaybePromise) | null | undefined; edges: ({ cursor: string; node: unknown; } | null)[]; pageInfo: { startCursor: string | null; endCursor: string | null; hasPreviousPage: boolean; hasNextPage: boolean; }; }>; export declare function getCursorFormatter(name: string, builder: PothosSchemaTypes.SchemaBuilder, cursor: string): (value: Record) => string; export declare function getCursorParser(name: string, builder: PothosSchemaTypes.SchemaBuilder, cursor: string): (rawCursor: string) => { [cursor]: unknown; }; export {}; //# sourceMappingURL=cursors.d.ts.map