import type { ObjectTypeComposer, SchemaComposer } from 'graphql-compose';
import type { Document, Model } from 'mongoose';
import { AllResolversOpts } from './resolvers';
import { GraphQLResolveInfo } from 'graphql';
import { TypeConverterInputTypeOpts } from './composeMongoose';
export type ComposeWithMongooseOpts<TContext> = {
    schemaComposer?: SchemaComposer<TContext>;
    name?: string;
    description?: string;
    fields?: {
        only?: string[];
        remove?: string[];
    };
    inputType?: TypeConverterInputTypeOpts;
    resolvers?: false | AllResolversOpts;
    transformRecordId?: TransformRecordIdFn<TContext>;
};
export type TransformRecordIdFn<TContext = any> = (source: Document, context: TContext, info: GraphQLResolveInfo) => any;
export declare function composeWithMongoose<TDoc extends Document, TContext = any>(model: Model<any>, opts?: ComposeWithMongooseOpts<TContext>): ObjectTypeComposer<TDoc, TContext>;
export declare function createResolvers(model: Model<any>, tc: ObjectTypeComposer<any, any>, opts: AllResolversOpts): void;
//# sourceMappingURL=composeWithMongoose.d.ts.map