import type { GetType } from "purify-ts";
import { Codec } from "purify-ts";
import { type Address } from "viem";
import type { GetEitherRight } from "../../types/utils";
export declare const unsignedEVMTransactionCodec: Codec<{
    data: `0x${string}`;
    to: `0x${string}`;
    gasLimit: bigint;
    from: `0x${string}`;
    value: bigint | undefined;
    nonce: number;
    type: number;
    maxFeePerGas: bigint | undefined;
    maxPriorityFeePerGas: bigint | undefined;
    chainId: number;
}>;
export declare const decodeAndPrepareEvmTransaction: ({ address, input, }: {
    address: Address;
    input: unknown;
}) => import("purify-ts").Either<string, {
    type: "0x2";
    maxFeePerGas: `0x${string}`;
    maxPriorityFeePerGas: `0x${string}` | undefined;
    to: `0x${string}`;
    from: `0x${string}`;
    data: `0x${string}`;
    value: `0x${string}` | undefined;
    nonce: `0x${string}`;
    gas: `0x${string}`;
    chainId: `0x${string}`;
} | {
    type: "0x1";
    to: `0x${string}`;
    from: `0x${string}`;
    data: `0x${string}`;
    value: `0x${string}` | undefined;
    nonce: `0x${string}`;
    gas: `0x${string}`;
    chainId: `0x${string}`;
}>;
export type DecodedEVMTransaction = GetEitherRight<ReturnType<typeof decodeAndPrepareEvmTransaction>>;
export declare const unsignedTronTransactionCodec: Codec<{
    raw_data: {
        contract: Record<string, unknown>[];
        ref_block_bytes: string;
        ref_block_hash: string;
        expiration: number;
        timestamp: number;
        data: unknown;
        fee_limit: unknown;
    };
    raw_data_hex: string;
    txID: string;
    visible: boolean;
}>;
export type DecodedTronTransaction = GetType<typeof unsignedTronTransactionCodec>;
export declare const unsignedSolanaTransactionCodec: Codec<string>;
export type DecodedSolanaTransaction = GetType<typeof unsignedSolanaTransactionCodec>;
export declare const unsignedTonTransactionTonConnectCodec: Codec<{
    seqno: bigint;
    message: string;
}>;
export declare const unsignedTonTransactionCodec: Codec<{
    seqno: bigint;
    message: string;
} | {
    address: string;
    amount: string;
    payload: string;
}[]>;
export type DecodedTonTransaction = GetType<typeof unsignedTonTransactionCodec>;
export declare const substratePayloadCodec: Codec<{
    tx: {
        address: string;
        assetId: `0x${string}` | undefined;
        blockHash: `0x${string}`;
        blockNumber: `0x${string}`;
        era: `0x${string}`;
        genesisHash: `0x${string}`;
        metadataHash: `0x${string}` | undefined;
        method: string;
        mode: number | undefined;
        nonce: `0x${string}`;
        specVersion: `0x${string}`;
        tip: `0x${string}`;
        transactionVersion: `0x${string}`;
        signedExtensions: string[];
        version: number;
        metadataRpc: `0x${string}`;
    };
    specName: string;
    specVersion: number;
    metadataRpc: `0x${string}`;
}>;
export type DecodedSubstrateTransaction = GetType<typeof substratePayloadCodec>;
