import type { StatementKind, TSTypeKind } from 'ast-types/lib/gen/kinds'; import * as graphql from 'graphql'; import * as recast from 'recast'; import type { Config } from './config'; import { TypeWrapper } from './graphql'; export declare function unwrappedTsTypeReference(config: Config, filepath: string, missingScalars: Set, { type, wrappers, }: { type: graphql.GraphQLNamedType; wrappers: TypeWrapper[]; }, body: StatementKind[]): TSTypeKind; export declare function tsTypeReference(config: Config, filepath: string, missingScalars: Set, definition: { type: graphql.GraphQLScalarType | graphql.GraphQLInputType | graphql.GraphQLNamedType | graphql.TypeNode; }, body: StatementKind[]): TSTypeKind; export declare function enumReference(config: Config, body: StatementKind[], name: string): recast.types.namedTypes.TSTypeReference; export declare function readonlyProperty(prop: recast.types.namedTypes.TSPropertySignature, enable?: boolean): recast.types.namedTypes.TSPropertySignature; export declare function nullableField(inner: TSTypeKind, input?: boolean): recast.types.namedTypes.TSUnionType; export declare function scalarPropertyValue(config: Config, filepath: string, missingScalars: Set, target: graphql.GraphQLNamedType, body: StatementKind[], field: { parent: string; field: string; } | null): TSTypeKind; export declare function writeTsConfig(config: Config): Promise;