import type { Document, Model } from 'mongoose';
import { ConnectionResolverOpts as _ConnectionResolverOpts, ConnectionSortMapOpts as _ConnectionSortMapOpts, ConnectionTArgs } from 'graphql-compose-connection';
import type { Resolver, ObjectTypeComposer, InterfaceTypeComposer } from 'graphql-compose';
import { CountResolverOpts } from './count';
import { FindManyResolverOpts } from './findMany';
import { IndexT } from '../utils/getIndexesFromModel';
export type ConnectionResolverOpts<TContext = any> = Omit<_ConnectionResolverOpts<TContext>, 'countResolver' | 'findManyResolver' | 'sort'> & {
    findManyResolver?: Resolver;
    countResolver?: Resolver;
    countOpts?: CountResolverOpts;
    findManyOpts?: FindManyResolverOpts;
    sort?: _ConnectionSortMapOpts;
};
export declare function connection<TSource = any, TContext = any, TDoc extends Document = any>(model: Model<TDoc>, tc: ObjectTypeComposer<TDoc, TContext> | InterfaceTypeComposer<TDoc, TContext>, opts?: ConnectionResolverOpts<TContext>): Resolver<TSource, TContext, ConnectionTArgs, TDoc>;
export declare function prepareCursorQuery(rawQuery: Record<string, any>, cursorData: Record<string, any>, indexKeys: Array<string>, indexData: IndexT, nextOper: '$gt' | '$lt', prevOper: '$lt' | '$gt'): void;
//# sourceMappingURL=connection.d.ts.map