import { ABISerializable, ABISerializableConstructor, ABISerializableObject, ABISerializableType, ABITypeDescriptor } from "../serializer/serializable.js"; export interface VariantConstructor extends ABISerializableConstructor { new (...args: any[]): T; } export type AnyVariant = Variant | ABISerializable | [string, any]; export declare class Variant implements ABISerializableObject { static abiName: string; static abiVariant: ABITypeDescriptor[]; static from(this: T, object: AnyVariant): InstanceType; static from(object: AnyVariant): unknown; value: ABISerializable; variantIdx: number; constructor(variant: [string, ABISerializable]); equals(other: AnyVariant): boolean; get variantName(): string; toJSON(): ABISerializable[]; } export declare namespace Variant { function type(name: string, types: ABISerializableType[]): (variant: T) => T; } //# sourceMappingURL=variant.d.ts.map