import type { ResultNode, MethodMeta, ServiceMeta } from "./types.js"; import { IDL } from "@icp-sdk/core/candid"; import type { BaseActor, FunctionName } from "@ic-reactor/core"; export * from "./types.js"; export declare class ResultFieldVisitor extends IDL.Visitor | ServiceMeta> { private codec; private recCache; private getCodec; visitService(t: IDL.ServiceClass): ServiceMeta; /** * Handle func type when encountered as a service method definition. * Returns MethodMeta with information about the method's inputs/outputs. * This is public so callers can explicitly request method metadata. */ visitFuncAsMethod(t: IDL.FuncClass, functionName: FunctionName): MethodMeta; /** * Handle func type when encountered as a data field (e.g., callback in a record). * Returns ResultNode that can resolve [Principal, string] data to a func reference. */ visitFunc(_t: IDL.FuncClass, label: string): ResultNode<"func">; visitRecord(_t: IDL.RecordClass, fields_: Array<[string, IDL.Type]>, label: string): ResultNode<"record"> | ResultNode<"funcRecord">; visitVariant(_t: IDL.VariantClass, fields_: Array<[string, IDL.Type]>, label: string): ResultNode<"variant">; visitTuple(_t: IDL.TupleClass, components: IDL.Type[], label: string): ResultNode<"tuple">; visitOpt(_t: IDL.OptClass, ty: IDL.Type, label: string): ResultNode<"optional">; visitVec(_t: IDL.VecClass, ty: IDL.Type, label: string): ResultNode<"vector"> | ResultNode<"blob">; visitRec(t: IDL.RecClass, ty: IDL.ConstructType, label: string): ResultNode<"recursive">; visitPrincipal(t: IDL.PrincipalClass, label: string): ResultNode<"principal">; visitText(t: IDL.TextClass, label: string): ResultNode<"text">; visitBool(t: IDL.BoolClass, label: string): ResultNode<"boolean">; visitNull(t: IDL.NullClass, label: string): ResultNode<"null">; visitInt(t: IDL.IntClass, label: string): ResultNode<"number">; visitNat(t: IDL.NatClass, label: string): ResultNode<"number">; visitFloat(t: IDL.FloatClass, label: string): ResultNode<"number">; visitFixedInt(t: IDL.FixedIntClass, label: string): ResultNode<"number">; visitFixedNat(t: IDL.FixedNatClass, label: string): ResultNode<"number">; visitType(_t: IDL.Type, label: string): ResultNode<"unknown">; } //# sourceMappingURL=index.d.ts.map