import { DescriptorProto, EnumOptions, FieldDescriptorProto, FileDescriptorProto, MessageOptions } from 'google-protobuf/google/protobuf/descriptor_pb';
import Type = FieldDescriptorProto.Type;
export interface IExportMessageEntry {
    protoPackage: string | undefined;
    protoFileName: string | undefined;
    messageDescriptorOptions: MessageOptions | undefined;
    mapFieldOptions?: {
        key: [Type, string];
        value: [Type, string];
    };
}
export interface IExportEnumEntry {
    protoPackage: string | undefined;
    protoFileName: string | undefined;
    enumDescriptorOptions: EnumOptions | undefined;
}
export declare class ProtoAbstractSyntaxTreeMap {
    protected messageTypeMap: {
        [key: string]: IExportMessageEntry;
    };
    protected enumTypeMap: {
        [key: string]: IExportEnumEntry;
    };
    exportMessage(packageScope: string | undefined, fileDescriptor: FileDescriptorProto, messageDescriptor: DescriptorProto): void;
    addFileDescriptorProto(fileDescriptorProto: FileDescriptorProto): void;
    getMessage(key: string): IExportMessageEntry | undefined;
    getEnum(key: string): IExportEnumEntry | undefined;
}
