import { ArgumentNode, DirectiveNode, GraphQLInputObjectType, GraphQLNamedType, GraphQLObjectType, GraphQLSchema, FieldDefinitionNode } from 'graphql'; export type AugmentConfig = { name?: string; }; export declare function findDirective(name: string, type: GraphQLNamedType): import("graphql").ConstDirectiveNode | undefined; export declare function findDirectiveOption(name: string, directive: DirectiveNode | undefined): ArgumentNode | undefined; export declare function findArgumentValue(argument: ArgumentNode | undefined): string; export type CollectionMap = ReturnType; export declare function directiveTypeMap(schema: GraphQLSchema, name: string): { [key: string]: GraphQLObjectType; }; export declare function isDirectiveNode(v: any): v is DirectiveNode; export declare function pluralize(str: string): string; export type MongoTypeMap = ReturnType; export declare function buildMongoTypeMap(schema: GraphQLSchema, config?: AugmentConfig): { collectionMap: { [key: string]: GraphQLObjectType; }; pageSchemaMap: { [x: string]: GraphQLSchema; }; filterSchemaMap: { [x: string]: GraphQLSchema | null; }; textsearchSchemaMap: { [x: string]: GraphQLSchema | null; }; insertSchemaMap: { [x: string]: GraphQLSchema | null; }; unsetSchemaMap: { [x: string]: GraphQLSchema | null; }; setSchemaMap: { [x: string]: GraphQLSchema | null; }; incSchemaMap: { [x: string]: GraphQLSchema | null; }; decSchemaMap: { [x: string]: GraphQLSchema | null; }; pageTypeMap: { [x: string]: GraphQLObjectType; }; filterTypeMap: { [x: string]: GraphQLInputObjectType | null; }; textsearchTypeMap: { [x: string]: GraphQLInputObjectType | null; }; insertTypeMap: { [x: string]: GraphQLInputObjectType | null; }; unsetTypeMap: { [x: string]: GraphQLInputObjectType | null; }; setTypeMap: { [x: string]: GraphQLInputObjectType | null; }; incTypeMap: { [x: string]: GraphQLInputObjectType | null; }; decTypeMap: { [x: string]: GraphQLInputObjectType | null; }; }; export type CollectionMongoTypes = ReturnType; export declare function getCollectionMongoTypes(mongoTypeMap: MongoTypeMap, type: string): { collection: GraphQLObjectType; pageSchema: GraphQLSchema; filterSchema: GraphQLSchema | null; textsearchSchema: GraphQLSchema | null; insertSchema: GraphQLSchema | null; unsetSchema: GraphQLSchema | null; setSchema: GraphQLSchema | null; incSchema: GraphQLSchema | null; decSchema: GraphQLSchema | null; pageType: GraphQLObjectType; filterType: GraphQLInputObjectType | null; textsearchType: GraphQLInputObjectType | null; insertType: GraphQLInputObjectType | null; unsetType: GraphQLInputObjectType | null; setType: GraphQLInputObjectType | null; incType: GraphQLInputObjectType | null; decType: GraphQLInputObjectType | null; }; export declare function buildPageMap({ collectionMap }: { collectionMap: CollectionMap; }): [{ [x: string]: GraphQLSchema; }, { [x: string]: GraphQLObjectType; }]; export declare function buildFieldMap(type: string, { collectionMap, schema }: { collectionMap: CollectionMap; schema: GraphQLSchema; }, getFieldValue?: (field: FieldDefinitionNode) => string): [{ [x: string]: GraphQLSchema | null; }, { [x: string]: GraphQLInputObjectType | null; }]; export declare function tuple(a: A, b: B): [A, B]; export declare function gqlTypeToTypescript(type: GraphQLInputObjectType | null): string; export declare function gqlTypeToTypescriptUnset(type: GraphQLInputObjectType | null): string;