import { ABISerializableConstructor } from "./Serializable.js";
import { Asset, ExtendedAsset } from "../chain/Asset.js";
import { BlockTimestamp, TimePoint, TimePointSec } from "../chain/Time.js";
import { Bytes } from "../chain/Bytes.js";
import { Checksum160, Checksum256, Checksum512 } from "../chain/Checksum.js";
import { Float128, Float32, Float64 } from "../chain/Float.js";
import { Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8, VarInt, VarUInt } from "../chain/Integer.js";
import { Name } from "../chain/Name.js";
import { PublicKey } from "../chain/PublicKey.js";
import { Signature } from "../chain/Signature.js";
export interface BuiltinTypes {
    string: string;
    "string?"?: string;
    "string[]": string[];
    "string[]?"?: string[];
    bool: boolean;
    "bool?"?: boolean;
    "bool[]": boolean[];
    "bool[]?"?: boolean[];
    asset: Asset;
    "asset?"?: Asset;
    "asset[]": Asset[];
    "asset[]?"?: Asset[];
    extended_asset: ExtendedAsset;
    "extended_asset?"?: ExtendedAsset;
    "extended_asset[]": ExtendedAsset[];
    "extended_asset[]?"?: ExtendedAsset[];
    bytes: Bytes;
    "bytes?"?: Bytes;
    "bytes[]": Bytes[];
    "bytes[]?"?: Bytes[];
    checksum160: Checksum160;
    "checksum160?"?: Checksum160;
    "checksum160[]": Checksum160[];
    "checksum160[]?"?: Checksum160[];
    checksum256: Checksum256;
    "checksum256?"?: Checksum256;
    "checksum256[]": Checksum256[];
    "checksum256[]?"?: Checksum256[];
    checksum512: Checksum512;
    "checksum512?"?: Checksum512;
    "checksum512[]": Checksum512[];
    "checksum512[]?"?: Checksum512[];
    name: Name;
    "name?"?: Name;
    "name[]": Name[];
    "name[]?"?: Name[];
    publickey: PublicKey;
    "publickey?"?: PublicKey;
    "publickey[]": PublicKey[];
    "publickey[]?"?: PublicKey[];
    signature: Signature;
    "signature?"?: Signature;
    "signature[]": Signature[];
    "signature[]?"?: Signature[];
    symbol: Asset.Symbol;
    "symbol?"?: Asset.Symbol;
    "symbol[]": Asset.Symbol[];
    "symbol[]?"?: Asset.Symbol[];
    symbol_code: Asset.SymbolCode;
    "symbol_code?"?: Asset.SymbolCode;
    "symbol_code[]": Asset.SymbolCode[];
    "symbol_code[]?"?: Asset.SymbolCode[];
    time_point: TimePoint;
    "time_point?"?: TimePoint;
    "time_point[]": TimePoint[];
    "time_point[]?"?: TimePoint[];
    time_point_sec: TimePointSec;
    "time_point_sec?"?: TimePointSec;
    "time_point_sec[]": TimePointSec[];
    "time_point_sec[]?"?: TimePointSec[];
    block_timestamp_type: BlockTimestamp;
    "block_timestamp_type?"?: BlockTimestamp;
    "block_timestamp_type[]": BlockTimestamp[];
    "block_timestamp_type[]?"?: BlockTimestamp[];
    int8: Int8;
    "int8?"?: Int8;
    "int8[]": Int8[];
    "int8[]?"?: Int8[];
    int16: Int16;
    "int16?"?: Int16;
    "int16[]": Int16[];
    "int16[]?"?: Int16[];
    int32: Int32;
    "int32?"?: Int32;
    "int32[]": Int32[];
    "int32[]?"?: Int32[];
    int64: Int64;
    "int64?"?: Int64;
    "int64[]": Int64[];
    "int64[]?"?: Int64[];
    int128: Int128;
    "int128?"?: Int128;
    "int128[]": Int128[];
    "int128[]?"?: Int128[];
    uint8: UInt8;
    "uint8?"?: UInt8;
    "uint8[]": UInt8[];
    "uint8[]?"?: UInt8[];
    uint16: UInt16;
    "uint16?"?: UInt16;
    "uint16[]": UInt16[];
    "uint16[]?"?: UInt16[];
    uint32: UInt32;
    "uint32?"?: UInt32;
    "uint32[]": UInt32[];
    "uint32[]?"?: UInt32[];
    uint64: UInt64;
    "uint64?"?: UInt64;
    "uint64[]": UInt64[];
    "uint64[]?"?: UInt64[];
    uint128: UInt128;
    "uint128?"?: UInt128;
    "uint128[]": UInt128[];
    "uint128[]?"?: UInt128[];
    varint: VarInt;
    "varint?"?: VarInt;
    "varint[]": VarInt[];
    "varint[]?"?: VarInt[];
    varuint: VarUInt;
    "varuint?"?: VarUInt;
    "varuint[]": VarUInt[];
    "varuint[]?"?: VarUInt[];
    float32: Float32;
    "float32?"?: Float32;
    "float32[]": Float32[];
    "float32[]?"?: Float32[];
    float64: Float64;
    "float64?"?: Float64;
    "float64[]": Float64[];
    "float64[]?"?: Float64[];
    float128: Float128;
    "float128?"?: Float128;
    "float128[]": Float128[];
    "float128[]?"?: Float128[];
}
export type TypeLookup = {
    [name: string]: ABISerializableConstructor;
};
export declare function buildTypeLookup(additional?: ABISerializableConstructor[]): TypeLookup;
export declare function getTypeName(object: any): string | undefined;
export declare function getType(object: any, name?: string): ABISerializableConstructor | undefined;
//# sourceMappingURL=Builtins.d.ts.map