import { Cursor } from "../tree"; import { Type } from "./type"; export declare class TypeVisitor

{ protected cursor: Cursor; visitList(types: T[] | undefined, p: P): Promise; preVisit(type: Type, p: P): Promise; postVisit(type: Type, p: P): Promise; /** * By calling this method, you are asserting that you know that the outcome will be non-null * when the compiler couldn't otherwise prove this to be the case. This method is a shortcut * for having to assert the non-nullability of the returned type. * * @param type A non-null type. * @param p A state object that passes through the visitor. * @return A non-null type. */ visitNonNull(type: Type, p: P): Promise; visit(type: T | undefined, p: P): Promise; protected visitUnion(union: Type.Union, p: P): Promise; protected visitAnnotation(annotation: Type.Annotation, p: P): Promise; protected visitArray(array: Type.Array, p: P): Promise; protected visitClass(aClass: Type.Class, p: P): Promise; protected visitGenericTypeVariable(generic: Type.GenericTypeVariable, p: P): Promise; protected visitIntersection(intersection: Type.Intersection, p: P): Promise; /** * This does not visit the declaring type to avoid a visitor cycle. * * @param method The method to visit * @param p Visit context * @return A method */ protected visitMethod(method: Type.Method, p: P): Promise; protected visitParameterized(parameterized: Type.Parameterized, p: P): Promise; protected visitPrimitive(primitive: Type.Primitive, p: P): Promise; /** * This does not visit the owner to avoid a visitor cycle. * * @param variable The variable to visit * @param p Visit context * @return A variable */ protected visitVariable(variable: Type.Variable, p: P): Promise; protected visitUnknown(unknown: Type, p: P): Promise; } //# sourceMappingURL=type-visitor.d.ts.map