import { Enum, Field, MapField, Method, Namespace, OneOf, ReflectionObject, Root, Service, Type } from 'protobufjs'; export interface Visitor { namespace?(v: Namespace): void; service?(v: Service): void; type?(v: Type): void; method?(v: Method): void; enum?(v: Enum): void; field?(v: Field): void; oneOf?(v: OneOf): void; root?(v: Root): void; mapField?(v: MapField): void; } export declare class CompositeVisitor implements Visitor { private visitors; constructor(); add(v: Visitor): void; namespace(v: Namespace): void; service(v: Service): void; type(v: Type): void; method(v: Method): void; enum(v: Enum): void; field(v: Field): void; oneOf(v: OneOf): void; root(v: Root): void; mapField(v: MapField): void; } export declare class VisitorWrapper implements Visitor { private visitor; constructor(visitor: Visitor); namespace(v: Namespace): void; service(v: Service): void; type(v: Type): void; method(v: Method): void; enum(v: Enum): void; field(v: Field): void; oneOf(v: OneOf): void; root(v: Root): void; mapField(v: MapField): void; } export declare function wrapVisitor(visitor: Visitor): VisitorWrapper; export declare function visit(obj: ReflectionObject, visitor: Visitor): void; export declare const resolveTypesVisitor: Visitor; export declare const sortReservedVisitor: Visitor; export declare const resolveMapsVisitor: Visitor; export declare const removeMapEntriesVisitor: Visitor;