import type { Abi as SchemaAbi } from "@truffle/contract-schema/spec"; import * as Abi from "@truffle/abi-utils"; export interface VisitOptions { node: N; context?: C; } export interface Visitor { visitAbi(options: VisitOptions): T; visitFunctionEntry(options: VisitOptions): T; visitConstructorEntry(options: VisitOptions): T; visitFallbackEntry(options: VisitOptions): T; visitReceiveEntry(options: VisitOptions): T; visitEventEntry(options: VisitOptions): T; visitErrorEntry(options: VisitOptions): T; visitParameter(options: VisitOptions): T; } export interface DispatchOptions { node: Node; visitor: Visitor; context?: C; } export type Node = Abi.Abi | SchemaAbi | Abi.Entry | Abi.FunctionEntry | Abi.ConstructorEntry | Abi.FallbackEntry | Abi.ReceiveEntry | Abi.EventEntry | Abi.Parameter | Abi.EventParameter; export declare const dispatch: (options: DispatchOptions) => T; //# sourceMappingURL=visitor.d.ts.map