import { ABI, ABIDef } from "../chain/abi.js"; import { ABISerializable, ABISerializableConstructor, ABISerializableType } from "./serializable.js"; import { buildTypeLookup } from "./builtins.js"; import { Bytes } from "../chain/bytes.js"; interface EncodeArgsBase { abi?: ABIDef; customTypes?: ABISerializableConstructor[]; encoder?: ABIEncoder; metadata?: Record; } interface EncodeArgsUntyped extends EncodeArgsBase { object: any; type: ABISerializableType; } interface EncodeArgsSerializable extends EncodeArgsBase { object: ABISerializable; type?: ABISerializableType; } export type EncodeArgs = EncodeArgsSerializable | EncodeArgsUntyped; export declare function abiEncode(args: EncodeArgs): Bytes; export declare function encodeAny(value: any, type: ABI.ResolvedType, ctx: EncodingContext): void; interface EncodingContext { encoder: ABIEncoder; types: ReturnType; codingPath: { field: string | number; type: ABI.ResolvedType; }[]; } export declare class ABIEncoder { private pageSize; static __className: string; private pos; private data; private array; private textEncoder; metadata: Record; constructor(pageSize?: number); private ensure; writeByte(byte: number): void; writeArray(bytes: ArrayLike): void; writeFloat(value: number, byteWidth: number): void; writeVaruint32(v: number): void; writeVarint32(v: number): void; writeString(v: string): void; getData(): Uint8Array; getBytes(): Bytes; } export {}; //# sourceMappingURL=encoder.d.ts.map