import { type GraphQLEnumTypeConfig, type GraphQLInputObjectTypeConfig, GraphQLObjectType, type GraphQLObjectTypeConfig, GraphQLEnumType, GraphQLInputObjectType, GraphQLScalarType } from 'graphql';
import { type ProtoMetadata, type ProtoMetaMessageOptions } from './types.js';
import { type DescriptorProto, type EnumDescriptorProto, type MethodDescriptorProto } from 'ts-proto-descriptors';
export interface TypingData {
    output: GraphQLObjectType | GraphQLEnumType | GraphQLScalarType;
    input: GraphQLInputObjectType | GraphQLEnumType | GraphQLScalarType;
    meta: DescriptorProto | EnumDescriptorProto;
    processor?: any;
}
export declare const registeredTypings: Map<string, TypingData>;
export declare const scalarTypes: string[];
export declare const IGoogleProtobufAny: GraphQLInputObjectType;
export declare const clearRegistry: () => void;
export declare const getRegisteredEnumTypings: () => string[];
export declare const getNameSpaceTypeName: (typeName: string) => string | undefined;
export declare const getTyping: (type: string) => TypingData | undefined;
export declare const recursiveEnumCheck: (typeName: string, enumMap: Map<string, string>, prevFieldName: string, traversedFields: string[]) => Map<string, string>;
export declare const registerTyping: (protoPackage: string, message: DescriptorProto, methodDef: MethodDescriptorProto[], opts?: Omit<Readonly<GraphQLObjectTypeConfig<any, any>>, "fields">, inputOpts?: Omit<Readonly<GraphQLInputObjectTypeConfig>, "fields">, messageOptions?: ProtoMetaMessageOptions) => void;
export declare const registerEnumTyping: <T = {
    [key: string]: any;
}>(protoPackage: string, message: EnumDescriptorProto, opts?: Omit<Readonly<GraphQLEnumTypeConfig>, "values">) => void;
export declare const registerPackagesRecursive: (...protoMetadata: ProtoMetadata[]) => void;
//# sourceMappingURL=registry.d.ts.map