export type TokenInfoRequestParams = {
    /**
     * The address of the token contract.
     */
    tokenAddress: string;
};
export type TokenSymbolAndAdmin = {
    /**
     * The address of the token contract.
     */
    tokenAddress: string;
    /**
     * The address of the admin contract.
     */
    adminContractAddress: string;
    /**
     * The address of the administrator.
     */
    adminAddress: string;
    /**
     * The symbol of the token.
     */
    tokenSymbol: string;
};
export type BalanceRequestParams = {
    /**
     * The address of the token contract (optional).
     */
    tokenAddress?: string;
    /**
     * The token ID (optional).
     */
    tokenId?: string;
    /**
     * The Mina address for which to retrieve the balance.
     */
    address: string;
};
export type TransactionsListRequestParams = {
    /**
     * The address of the token contract (optional). One of tokenAddress or tokenId is required.
     */
    tokenAddress?: string;
    /**
     * The token ID (optional). One of tokenAddress or tokenId is required.
     */
    tokenId?: string;
    /**
     * The Mina address for which to retrieve the transactions. Optional
     */
    address?: string;
};
export type BalanceResponse = {
    /**
     * The address of the token contract (optional).
     */
    tokenAddress?: string;
    /**
     * The token ID (optional).
     */
    tokenId?: string;
    /**
     * The Mina address for which the balance was requested.
     */
    address: string;
    /**
     * The balance of the token for the specified address.
     */
    balance?: number;
    /**
     * Indicates whether the account exists.
     */
    hasAccount?: boolean;
};
export type NonceRequestParams = {
    /**
     * The Mina address for which to retrieve the nonce.
     */
    address: string;
};
export type NonceResponse = {
    /**
     * The Mina address for which the nonce was requested.
     */
    address: string;
    /**
     * The nonce for the specified address.
     */
    nonce?: number;
    /**
     * Indicates whether the account exists.
     */
    hasAccount?: boolean;
};
export type TokenHolder = {
    /**
     * The address of the token holder
     */
    address: string;
    /**
     * The total token balance held by this address
     */
    balance: number;
    /**
     * The percentage of total token supply held by this address
     */
    percentage: number;
    /**
     * Whether this holder is a zkApp account
     */
    isZkappAccount: boolean;
};
export type TokenHoldersRequestParams = {
    /**
     * The Mina address for which to retrieve the holders
     */
    address: string;
};
export type TokenHoldersResponse = {
    /**
     * Array of token holders and their balances
     */
    holders: Array<TokenHolder>;
};
export type TransactionData = {
    /**
     * Timestamp of the transaction
     */
    timestamp: number;
    /**
     * Status of the transaction
     */
    status: string;
    updatedAccounts: Array<{
        /**
         * Address of the updated account
         */
        accountAddress: string;
        /**
         * Whether this is a zkApp account
         */
        isZkappAccount: boolean;
        /**
         * Hash of the verification key
         */
        verificationKeyHash?: string;
    }>;
    /**
     * Number of account updates in the transaction
     */
    accountUpdatesCount: number;
    /**
     * Address of the prover
     */
    proverAddress: string;
    /**
     * Whether this is a zkApp account
     */
    isZkappAccount: boolean;
    /**
     * Transaction hash
     */
    hash: string;
    /**
     * Transaction fee
     */
    fee: number;
    /**
     * Transaction memo
     */
    memo: string;
};
export type TransactionsListResponse = {
    /**
     * Array of transactions
     */
    transactions: Array<TransactionData>;
};
export type ErrorResponse = {
    /**
     * Error message detailing the issue.
     */
    error?: string;
};
export type JobId = {
    /**
     * The job ID returned by the `/prove` endpoint.
     */
    jobId: string;
};
export type JobResults = {
    /**
     * Indicates whether the job was successful.
     */
    success?: boolean;
    /**
     * The current status of the job.
     */
    jobStatus?: 'created' | 'started' | 'finished' | 'failed' | 'used' | 'restarted';
    /**
     * Error message if the job failed.
     */
    error?: string;
    /**
     * Results for each transaction in the job.
     */
    results?: Array<JobResult>;
};
export type JobResult = {
    /**
     * Indicates whether the proof generation for this transaction was successful.
     */
    success: boolean;
    /**
     * Error message if proof generation failed for this transaction.
     */
    error?: string;
    /**
     * The transaction data.
     */
    tx?: string;
    /**
     * The status of the transaction.
     */
    status?: string;
    /**
     * The transaction hash if broadcasted.
     */
    hash?: string;
};
export type SendTransactionParams = {
    /**
     * The transaction to send.
     */
    transaction: string;
};
export type SendTransactionReply = {
    /**
     * The transaction hash if successful.
     */
    hash?: string;
    /**
     * The status of the transaction.
     */
    status?: string;
    /**
     * Whether the transaction was sent to the network.
     */
    success: boolean;
    /**
     * Error details if the transaction failed.
     */
    error?: {
        [key: string]: unknown;
    };
};
export type TransactionStatusParams = {
    /**
     * The transaction hash to check the status of.
     */
    hash: string;
};
export type TransactionStatus = {
    /**
     * The transaction hash.
     */
    hash?: string;
    /**
     * The status of the transaction.
     */
    status?: 'pending' | 'applied' | 'failed' | 'unknown';
    /**
     * The transaction hash.
     */
    error?: string;
    /**
     * The details of the transaction.
     */
    details?: {
        /**
         * The height of the block containing the transaction.
         */
        blockHeight?: number;
        /**
         * The state hash of the block.
         */
        stateHash?: string;
        /**
         * The status of the block.
         */
        blockStatus?: string;
        /**
         * The timestamp of the block.
         */
        timestamp?: number;
        /**
         * The transaction hash.
         */
        txHash?: string;
        /**
         * The status of the transaction in the block.
         */
        txStatus?: string;
    };
};
export type TxStatus = {
    /**
     * The height of the block containing the transaction.
     */
    blockHeight?: number;
    /**
     * The state hash of the block.
     */
    stateHash?: string;
    /**
     * The status of the block.
     */
    blockStatus?: string;
    /**
     * The timestamp of the block.
     */
    timestamp?: number;
    /**
     * The transaction hash.
     */
    txHash?: string;
    /**
     * The status of the transaction in the block.
     */
    txStatus?: string;
};
export type FaucetParams = {
    /**
     * The Mina address (public key) to receive the test tokens.
     */
    address: string;
};
export type FaucetResponse = {
    /**
     * Indicates whether the faucet request was successful.
     */
    success?: boolean;
    /**
     * The transaction hash of the faucet transfer if successful.
     */
    hash?: string;
    /**
     * Error message if the request failed.
     */
    error?: string;
};
export type NftRequestParams = {
    /**
     * Always set to B62qs2NthDuxAT94tTFg6MtuaP1gaBxTZyNv9D3uQiQciy1VsaimNFT for Mina NFT V2.
     */
    collectionAddress: string;
    /**
     * The unique NFT address.
     */
    nftAddress?: string;
};
export type NftV2RequestAnswer = {
    contractAddress?: string;
    nftAddress?: string;
    tokenId?: string;
    tokenSymbol?: string;
    contractUri?: string;
    name?: string;
    metadataRoot?: {
        data?: string;
        kind?: string;
    };
    storage?: string;
    owner?: string;
    price?: number;
    version?: number;
    metadata?: {
        [key: string]: unknown;
    };
    algolia?: {
        [key: string]: unknown;
    };
};
export type NftInfo = {
    type: 'nft' | 'collection';
    contractType: 'nft';
    tokenAddress: string;
    collectionName: string;
    collectionAddress: string;
    /**
     * The URI of the collection.
     */
    collectionUri?: string;
    /**
     * The symbol of the collection.
     */
    collectionSymbol?: string;
    /**
     * The base URL of the collection.
     */
    collectionBaseURL?: string;
    symbol: string;
    uri: string;
    tokenId: string;
    name: string;
    image: string;
    description?: string;
    metadataRoot: string;
    storage: string;
    metadataVerificationKeyHash: string;
    owner: string;
    approved?: string;
    approvedVerificationKeyHash?: string;
    approvedType?: string;
    version: number;
    id: string;
    canChangeOwnerByProof: boolean;
    canTransfer: boolean;
    canApprove: boolean;
    canChangeMetadata: boolean;
    canChangeStorage: boolean;
    canChangeName: boolean;
    canChangeMetadataVerificationKeyHash: boolean;
    canPause: boolean;
    isPaused: boolean;
    requireOwnerAuthorizationToUpgrade: boolean;
    metadata: {
        [key: string]: unknown;
    };
    status: string;
    rating: number;
    updated: number;
    created: number;
    chain: string;
    price?: number;
    likes?: number;
    /**
     * The verification key hash of the contract.
     */
    contractVerificationKeyHash: string;
    /**
     * The version number of the contract.
     */
    contractVersion: number;
};
export type CollectionInfo = {
    contractType: 'collection';
    collectionName: string;
    collectionAddress: string;
    tokenId: string;
    symbol: string;
    uri: string;
    isPaused: boolean;
    banner?: string;
    creator: string;
    adminAddress: string;
    baseURL: string;
    royaltyFee: number;
    transferFee: string;
    requireTransferApproval: boolean;
    mintingIsLimited: boolean;
    collectionIsPaused: boolean;
    masterNFT: NftInfo;
    /**
     * The verification key hash of the contract.
     */
    contractVerificationKeyHash: string;
    /**
     * The version number of the contract.
     */
    contractVersion: number;
    chain: string;
    updated: number;
    created: number;
    likes?: number;
    status: string;
    rating: number;
};
export type NftRequestAnswer = {
    collection: CollectionInfo;
    nft: NftInfo;
};
export type TokenTransactionType = 'token:launch' | 'token:mint' | 'token:burn' | 'token:redeem' | 'token:transfer' | 'token:bid:create' | 'token:offer:create' | 'token:offer:buy' | 'token:bid:sell' | 'token:airdrop' | 'token:bid:withdraw' | 'token:offer:withdraw' | 'token:bid:whitelist' | 'token:offer:whitelist' | 'token:admin:whitelist';
export type NftTransactionType = 'nft:launch' | 'nft:mint' | 'nft:transfer' | 'nft:approve' | 'nft:sell' | 'nft:buy';
export type TokenTransactionBaseParams = {
    /**
     * Type of the token transaction.
     */
    txType?: TokenTransactionType;
    /**
     * Optional. The address of the token contract.
     */
    tokenAddress?: string;
    /**
     * The address (public key) of the sender.
     */
    sender: string;
    /**
     * The private key of the sender. It is NOT recommended to use this field. Please use the `sender` field instead. Use this field at your own risk and only if you know what you are doing and do not have access to mina-signer or wallet to get the signature.
     */
    senderPrivateKey?: string;
    /**
     * Optional. The nonce for the transaction.
     */
    nonce?: number;
    /**
     * Optional. The fee for the transaction.
     */
    fee?: number;
    /**
     * Optional. A memo for the transaction.
     */
    memo?: string;
    /**
     * Optional. The developer fee for the transaction.
     */
    developerFee?: number;
};
export type NftTransactionBaseParams = {
    /**
     * Type of the NFT transaction.
     */
    txType?: NftTransactionType;
    /**
     * Optional. The address of the NFT collection.
     */
    collectionAddress?: string;
    /**
     * Optional. The address of the NFT.
     */
    nftAddress?: string;
    /**
     * The address (public key) of the sender.
     */
    sender: string;
    /**
     * The private key of the sender. It is NOT recommended to use this field. Please use the `sender` field instead. Use this field at your own risk and only if you know what you are doing and do not have access to mina-signer or wallet to get the signature.
     */
    senderPrivateKey?: string;
    /**
     * Optional. The nonce for the transaction.
     */
    nonce?: number;
    /**
     * Optional. The fee for the transaction.
     */
    fee?: number;
    /**
     * Optional. A memo for the transaction.
     */
    memo?: string;
    /**
     * Optional. The developer fee for the transaction.
     */
    developerFee?: number;
};
export type DeployedTokenTransactionBaseParams = TokenTransactionBaseParams & {
    /**
     * The address of the token contract.
     */
    tokenAddress: string;
};
export type DeployedNftCollectionTransactionBaseParams = NftTransactionBaseParams & {
    /**
     * The address of the NFT collection.
     */
    collectionAddress: string;
};
export type DeployedNftTransactionBaseParams = NftTransactionBaseParams & {
    /**
     * The address of the NFT collection.
     */
    collectionAddress: string;
    /**
     * The address of the NFT.
     */
    nftAddress: string;
};
export type LaunchTokenTransactionBaseParams = TokenTransactionBaseParams & {
    /**
     * Must be "token:launch"
     */
    txType?: 'token:launch';
    /**
     * The type of admin contract to use.
     */
    adminContract: 'standard' | 'advanced' | 'bondingCurve';
    /**
     * The symbol of the token.
     */
    symbol: string;
    /**
     * Optional. The number of decimal places for the token.
     */
    decimals?: number;
    /**
     * URI or token info object containing metadata.
     */
    uri: string | TokenInfo;
    /**
     * Optional. The address of the token contract.
     */
    tokenAddress?: string;
    /**
     * Optional. The address of the admin contract.
     */
    adminContractAddress?: string;
    /**
     * Optional. Private key for the token contract.
     */
    tokenContractPrivateKey?: string;
    /**
     * Optional. Private key for the admin contract.
     */
    adminContractPrivateKey?: string;
};
export type CollectionData = {
    /**
     * The royalty fee percentage (e.g., 1000 = 1%, 100 = 0.1%, 10000 = 10%, 100000 = 100%)
     */
    royaltyFee?: number;
    /**
     * The transfer fee amount
     */
    transferFee?: number;
    /**
     * If true, transferring NFTs requires approval from the admin contract
     */
    requireTransferApproval?: boolean;
    /**
     * If true, the minting is stopped and cannot be resumed
     */
    mintingIsLimited?: boolean;
    /**
     * Indicates whether the collection is currently paused
     */
    isPaused?: boolean;
};
export type NftMetadata = {
    /**
     * The name of the NFT
     */
    name: string;
    /**
     * The image URL or IPFS hash associated with the NFT
     */
    image: string;
    /**
     * Optional description of the NFT
     */
    description?: string;
    /**
     * Optional banner image URL or IPFS hash. Required for Collection Master NFT.
     */
    banner?: string;
    /**
     * Array of traits associated with the NFT
     */
    traits?: Array<Trait>;
};
export type NftData = {
    /**
     * The public key of the owner of the NFT
     */
    owner?: string;
    /**
     * The public key of the approved address of the NFT
     */
    approved?: string;
    /**
     * The version number of the NFT state
     */
    version?: number;
    /**
     * The unique identifier of the NFT within the collection. A bigint encoded as a string.
     */
    id?: string;
    /**
     * Determines whether the NFT's ownership can be changed via a zero-knowledge proof (readonly)
     */
    canChangeOwnerByProof?: boolean;
    /**
     * Specifies if the NFT's ownership can be transferred (readonly)
     */
    canTransfer?: boolean;
    /**
     * Specifies if the NFT's approved address can be changed (readonly)
     */
    canApprove?: boolean;
    /**
     * Indicates whether the NFT's metadata can be updated (readonly)
     */
    canChangeMetadata?: boolean;
    /**
     * Determines whether the storage associated with the NFT can be altered (readonly)
     */
    canChangeStorage?: boolean;
    /**
     * Specifies if the name of the NFT can be changed (readonly)
     */
    canChangeName?: boolean;
    /**
     * Indicates whether the verification key hash for the metadata can be changed (readonly)
     */
    canChangeMetadataVerificationKeyHash?: boolean;
    /**
     * Specifies if the NFT contract can be paused, preventing certain operations (readonly)
     */
    canPause?: boolean;
    /**
     * Indicates whether the NFT contract is currently paused
     */
    isPaused?: boolean;
    /**
     * Determines whether the owner's authorization is required to upgrade the NFT's verification key (readonly)
     */
    requireOwnerAuthorizationToUpgrade?: boolean;
};
export type Trait = {
    /**
     * The trait key/name
     */
    key: string;
    /**
     * The type of the trait value
     */
    type: 'string' | 'text' | 'image' | 'url' | 'field' | 'number' | 'address' | 'map' | 'tree';
    /**
     * The trait value, can be a string or complex object depending on type
     */
    value: string | {
        [key: string]: unknown;
    };
    /**
     * Optional flag indicating if this trait is private
     */
    isPrivate?: boolean;
};
export type CmsnftData = {
    /**
     * The address of the NFT collection
     */
    collectionAddress: string;
    /**
     * The symbol of the NFT
     */
    symbol?: string;
    /**
     * The name of the NFT
     */
    name: string;
    /**
     * Optional description of the NFT
     */
    description?: string;
    /**
     * The hash of the verification key used for metadata proofs, Field as a string
     */
    metadataVerificationKeyHash?: string;
    /**
     * URL to the NFT image
     */
    imageURL: string;
    /**
     * Array of traits associated with the NFT
     */
    traits?: Array<Trait>;
    /**
     * Data associated with the NFT
     */
    nftData?: NftData;
    /**
     * The price of the NFT
     */
    price?: number;
    /**
     * The start time of the minting period( unix timestamp in ms)
     */
    mintStart?: number;
    /**
     * The end time of the minting period( unix timestamp in ms)
     */
    mintEnd?: number;
};
export type NftTransferParams = {
    /**
     * The address of the owner or approved
     */
    from?: string;
    /**
     * The address of the recipient
     */
    to: string;
    /**
     * The price of the NFT being transferred
     */
    price?: number;
    /**
     * If true, the transfer requires approval from the admin contract
     */
    requireApproval?: boolean;
    /**
     * The custom context for the transfer
     */
    context?: {
        /**
         * The custom context for the transfer, 3 Fields
         */
        custom?: Array<string>;
    };
};
export type NftApproveParams = {
    /**
     * The address of the recipient. If not provided, the existing approval will be removed.
     */
    to?: string;
};
export type NftSellParams = {
    /**
     * The price of the NFT
     */
    price: number;
    /**
     * The address of the offer contract
     */
    offerAddress?: string;
    /**
     * The private key of the offer contract
     */
    offerPrivateKey?: string;
};
export type NftBuyParams = {
    /**
     * The address of the buyer
     */
    buyer?: string;
};
export type NftMintParams = {
    /**
     * The name of the NFT
     */
    name: string;
    /**
     * The address of the NFT contract
     */
    address?: string;
    /**
     * The private key of the NFT contract
     */
    addressPrivateKey?: string;
    /**
     * The token ID of the NFT
     */
    tokenId?: number;
    /**
     * The data associated with the NFT, including owner, approved, version, id, permissions and flags
     */
    data: NftData;
    /**
     * The fee associated with minting the NFT
     */
    fee?: number;
    /**
     * The metadata associated with the NFT, Field as a string or NftMetadata object
     */
    metadata: string | NftMetadata;
    /**
     * The off-chain storage information (e.g., IPFS hash)
     */
    storage?: string;
    /**
     * The hash of the verification key used for metadata proofs, Field as a string
     */
    metadataVerificationKeyHash?: string;
    /**
     * The expiry time slot for minting the NFT
     */
    expiry?: number;
};
export type LaunchNftCollectionTransactionBaseParams = NftTransactionBaseParams & {
    /**
     * Must be "nft:launch"
     */
    txType?: 'nft:launch';
    /**
     * The type of admin contract to use. Default is "standard".
     */
    adminContract?: 'standard' | 'advanced';
    /**
     * The symbol of the NFT collection. Use NFT as a default value.
     */
    symbol?: string;
    /**
     * The URL of the NFT collection.
     */
    url?: string;
    /**
     * The name of the NFT collection.
     */
    collectionName: string;
    /**
     * The creator of the NFT collection. Should be the public key of the creator starting with B62.
     */
    creator?: string;
    /**
     * The base URL of the NFT collection, can be 'ipfs' or url with or without `https://`. Default is 'ipfs'.
     */
    baseURL?: string;
    collectionData?: CollectionData;
    masterNFT: NftMintParams;
    /**
     * Optional. The address of the    collection.
     */
    collectionAddress?: string;
    /**
     * Optional. The address of the admin contract.
     */
    adminContractAddress?: string;
    /**
     * Optional. Private key for the collection contract.
     */
    collectionContractPrivateKey?: string;
    /**
     * Optional. Private key for the admin contract.
     */
    adminContractPrivateKey?: string;
};
export type TokenMintTransactionParams = DeployedTokenTransactionBaseParams & {
    /**
     * Must be "token:mint"
     */
    txType?: 'token:mint';
    /**
     * The address to which tokens are to be minted.
     */
    to: string;
    /**
     * The amount of tokens to mint.
     */
    amount: number;
    /**
     * The price of the token in the bonding curve.
     */
    price?: number;
};
export type NftMintTransactionParams = DeployedNftCollectionTransactionBaseParams & {
    /**
     * Must be "nft:mint"
     */
    txType: 'nft:mint';
    nftMintParams: NftMintParams;
};
export type NftTransferTransactionParams = DeployedNftTransactionBaseParams & {
    /**
     * Must be "nft:transfer"
     */
    txType: 'nft:transfer';
    nftTransferParams: NftTransferParams;
};
export type NftApproveTransactionParams = DeployedNftTransactionBaseParams & {
    /**
     * Must be "nft:approve"
     */
    txType: 'nft:approve';
    nftApproveParams: NftApproveParams;
};
export type NftSellTransactionParams = DeployedNftTransactionBaseParams & {
    /**
     * Must be "nft:sell"
     */
    txType: 'nft:sell';
    nftSellParams: NftSellParams;
};
export type NftBuyTransactionParams = DeployedNftTransactionBaseParams & {
    /**
     * Must be "nft:buy"
     */
    txType: 'nft:buy';
    nftBuyParams: NftBuyParams;
};
export type TokenBurnTransactionParams = DeployedTokenTransactionBaseParams & {
    /**
     * Must be "token:burn"
     */
    txType?: 'token:burn';
    /**
     * The address from which tokens are to be burned.
     */
    from: string;
    /**
     * The amount of tokens to burn.
     */
    amount: number;
};
export type TokenRedeemTransactionParams = DeployedTokenTransactionBaseParams & {
    /**
     * Must be "token:redeem"
     */
    txType?: 'token:redeem';
    /**
     * The amount of tokens to redeem.
     */
    amount: number;
    /**
     * The minimum price of the tokens to be redeemed.
     */
    price: number;
    /**
     * The maximum slippage allowed for the redemption, default is 50 (5%).
     */
    slippage?: number;
};
export type TokenTransferTransactionParams = DeployedTokenTransactionBaseParams & {
    /**
     * Must be "token:transfer"
     */
    txType?: 'token:transfer';
    /**
     * The address to which tokens are to be transferred.
     */
    to: string;
    /**
     * The amount of tokens to transfer.
     */
    amount: number;
};
export type TokenAirdropTransactionParams = DeployedTokenTransactionBaseParams & {
    /**
     * Must be "token:airdrop"
     */
    txType?: 'token:airdrop';
    /**
     * List of recipients and amounts for the airdrop
     */
    recipients: Array<{
        /**
         * The recipient's address
         */
        address: string;
        /**
         * The amount to airdrop
         */
        amount: number;
        /**
         * Optional memo for this recipient
         */
        memo?: string;
    }>;
};
export type TokenBidTransactionParams = DeployedTokenTransactionBaseParams & {
    /**
     * Must be "token:bid:create"
     */
    txType?: 'token:bid:create';
    /**
     * Optional. The private key for bidding.
     */
    bidPrivateKey?: string;
    /**
     * Optional. The address for bidding.
     */
    bidAddress?: string;
    /**
     * The amount to bid.
     */
    amount: number;
    /**
     * The price to bid.
     */
    price: number;
    whitelist?: Whitelist;
};
export type TokenOfferTransactionParams = DeployedTokenTransactionBaseParams & {
    /**
     * Must be "token:offer:create"
     */
    txType?: 'token:offer:create';
    /**
     * Optional. The private key for offering.
     */
    offerPrivateKey?: string;
    /**
     * Optional. The address for offering.
     */
    offerAddress?: string;
    /**
     * The amount to offer.
     */
    amount: number;
    /**
     * The price to offer.
     */
    price: number;
    whitelist?: Whitelist;
};
export type TokenBuyTransactionParams = DeployedTokenTransactionBaseParams & {
    /**
     * Must be "token:offer:buy"
     */
    txType?: 'token:offer:buy';
    /**
     * The address of the offer to buy from.
     */
    offerAddress: string;
    /**
     * The amount of tokens to buy.
     */
    amount: number;
};
export type TokenSellTransactionParams = DeployedTokenTransactionBaseParams & {
    /**
     * Must be "token:bid:sell"
     */
    txType?: 'token:bid:sell';
    /**
     * The address of the bid to sell to.
     */
    bidAddress: string;
    /**
     * The amount of tokens to sell.
     */
    amount: number;
};
export type TokenWithdrawBidTransactionParams = DeployedTokenTransactionBaseParams & {
    /**
     * Must be "token:bid:withdraw"
     */
    txType?: 'token:bid:withdraw';
    /**
     * The address of the bid to withdraw from.
     */
    bidAddress: string;
    /**
     * The amount to withdraw from the bid.
     */
    amount: number;
};
export type TokenWithdrawOfferTransactionParams = DeployedTokenTransactionBaseParams & {
    /**
     * Must be "token:offer:withdraw"
     */
    txType?: 'token:offer:withdraw';
    /**
     * The address of the offer to withdraw from.
     */
    offerAddress: string;
    /**
     * The amount to withdraw from the offer.
     */
    amount: number;
};
export type TokenUpdateBidWhitelistTransactionParams = DeployedTokenTransactionBaseParams & {
    /**
     * Must be "token:bid:whitelist"
     */
    txType?: 'token:bid:whitelist';
    /**
     * The address of the bid to update whitelist for.
     */
    bidAddress: string;
    /**
     * Either a list of whitelisted addresses with optional amounts, or a string representing a whitelist contract address
     */
    whitelist: Whitelist;
};
export type TokenUpdateOfferWhitelistTransactionParams = DeployedTokenTransactionBaseParams & {
    /**
     * Must be "token:offer:whitelist"
     */
    txType?: 'token:offer:whitelist';
    /**
     * The address of the offer to update whitelist for.
     */
    offerAddress: string;
    /**
     * Either a list of whitelisted addresses with optional amounts, or a string representing a whitelist contract address
     */
    whitelist: Whitelist;
};
export type TokenUpdateAdminWhitelistTransactionParams = DeployedTokenTransactionBaseParams & {
    /**
     * Must be "token:admin:whitelist"
     */
    txType?: 'token:admin:whitelist';
    /**
     * The address of the admin to update whitelist for.
     */
    adminAddress: string;
    /**
     * Either a list of whitelisted addresses with optional amounts, or a string representing a whitelist contract address
     */
    whitelist: Whitelist;
};
export type LaunchTokenStandardAdminParams = LaunchTokenTransactionBaseParams & {
    /**
     * Must be "standard" for standard admin contract.
     */
    adminContract: 'standard';
};
export type LaunchNftCollectionStandardAdminParams = LaunchNftCollectionTransactionBaseParams & {
    /**
     * Must be "standard" for standard admin contract.
     */
    adminContract: 'standard';
};
export type LaunchTokenAdvancedAdminParams = LaunchTokenTransactionBaseParams & {
    /**
     * Must be "advanced" for advanced admin contract.
     */
    adminContract: 'advanced';
    /**
     * Specifies who can mint tokens.
     */
    canMint: 'whitelist' | 'anyone';
    /**
     * Optional. Whether admin signature is required for minting.
     */
    requireAdminSignatureForMint?: boolean;
    /**
     * Optional. List of whitelisted addresses with optional amounts, or a string.
     */
    whitelist?: Whitelist;
    /**
     * Optional. Maximum total supply. Uses UInt64.MAXINT() if not provided.
     */
    totalSupply?: number;
};
export type AdvancedNftCollectionAdminData = {
    /**
     * Indicates whether the contract can be paused
     */
    canPause?: boolean;
    /**
     * Indicates whether the contract is currently paused
     */
    isPaused?: boolean;
    /**
     * Indicates whether the contract can change the royalty fee
     */
    allowChangeRoyalty?: boolean;
    /**
     * Indicates whether the contract can change the transfer fee
     */
    allowChangeTransferFee?: boolean;
    /**
     * Indicates whether the contract can change the base URI
     */
    allowChangeBaseUri?: boolean;
    /**
     * Indicates whether the contract can change the creator
     */
    allowChangeCreator?: boolean;
    /**
     * Indicates whether the contract can change the admin
     */
    allowChangeAdmin?: boolean;
    /**
     * Indicates whether the contract can change the name
     */
    allowChangeName?: boolean;
};
export type LaunchNftCollectionAdvancedAdminParams = LaunchNftCollectionTransactionBaseParams & {
    /**
     * Must be "advanced" for advanced admin contract.
     */
    adminContract: 'advanced';
    /**
     * The address of the upgrade authority contract
     */
    upgradeAuthority: string;
    /**
     * The admin data for the NFT collection
     */
    adminData?: AdvancedNftCollectionAdminData;
    /**
     * Optional. List of whitelisted addresses with optional amounts, or a string.
     */
    whitelist?: Whitelist;
};
export type LaunchTokenBondingCurveAdminParams = LaunchTokenTransactionBaseParams & {
    /**
     * Must be "bondingCurve" for bonding curve admin contract.
     */
    adminContract: 'bondingCurve';
};
export type TokenInfo = {
    /**
     * The symbol of the token.
     */
    symbol?: string;
    /**
     * Optional. The name of the token.
     */
    name?: string;
    /**
     * Optional. Description of the token.
     */
    description?: string;
    /**
     * Optional. URL of the token image.
     */
    imageUrl?: string;
    /**
     * Optional. Base64-encoded image data (max 1 MB).
     */
    imageBase64?: string;
    /**
     * Optional. Twitter handle associated with the token.
     */
    twitter?: string;
    /**
     * Optional. Discord link associated with the token.
     */
    discord?: string;
    /**
     * Optional. Telegram link associated with the token.
     */
    telegram?: string;
    /**
     * Optional. Instagram handle associated with the token.
     */
    instagram?: string;
    /**
     * Optional. Facebook page associated with the token.
     */
    facebook?: string;
    /**
     * Optional. Official website of the token.
     */
    website?: string;
    /**
     * Optional. Code for the token contract.
     */
    tokenContractCode?: string;
    /**
     * Optional. Code for the admin contracts.
     */
    adminContractsCode?: Array<string>;
};
export type TransactionPayloads = {
    /**
     * The address initiating the transaction.
     */
    sender: string;
    /**
     * The nonce for the transaction.
     */
    nonce: number;
    /**
     * A memo for the transaction.
     */
    memo: string;
    /**
     * The fee for the transaction.
     */
    fee: number;
    walletPayload: {
        /**
         * The nonce for the transaction.
         */
        nonce?: number;
        /**
         * The transaction data.
         */
        transaction?: string;
        /**
         * Indicates if only signature is needed.
         */
        onlySign?: boolean;
        feePayer?: {
            /**
             * The fee for the transaction.
             */
            fee?: number;
            /**
             * A memo for the transaction.
             */
            memo?: string;
        };
    };
    minaSignerPayload: {
        /**
         * The zkApp command data.
         */
        zkappCommand: {
            [key: string]: unknown;
        };
        feePayer: {
            /**
             * The fee payer's address.
             */
            feePayer?: string;
            /**
             * The fee for the transaction.
             */
            fee?: number;
            /**
             * The nonce for the transaction.
             */
            nonce?: number;
            /**
             * A memo for the transaction.
             */
            memo?: string;
        };
    };
    /**
     * The payload for the prover.
     */
    proverPayload: string;
    /**
     * The signed data for the transaction.
     */
    signedData: string;
    /**
     * The raw transaction data.
     */
    transaction: string;
    /**
     * Optional. Whether to broadcast the transaction after proving.
     */
    sendTransaction?: boolean;
};
export type TokenTransactionParams = LaunchTokenStandardAdminParams | LaunchTokenAdvancedAdminParams | TokenMintTransactionParams | TokenBurnTransactionParams | TokenRedeemTransactionParams | TokenTransferTransactionParams | TokenAirdropTransactionParams | TokenOfferTransactionParams | TokenBidTransactionParams | TokenBuyTransactionParams | TokenSellTransactionParams | TokenWithdrawBidTransactionParams | TokenWithdrawOfferTransactionParams | TokenUpdateBidWhitelistTransactionParams | TokenUpdateOfferWhitelistTransactionParams | TokenUpdateAdminWhitelistTransactionParams;
export type NftTransactionParams = LaunchNftCollectionStandardAdminParams | LaunchNftCollectionAdvancedAdminParams | NftMintTransactionParams | NftSellTransactionParams | NftBuyTransactionParams | NftTransferTransactionParams | NftApproveTransactionParams;
export type TokenTransaction = TransactionPayloads & {
    /**
     * The symbol of the token.
     */
    symbol: string;
    request: TokenTransactionParams & {
        /**
         * The type of the token transaction.
         */
        txType: TokenTransactionType;
    };
};
export type NftTransaction = TransactionPayloads & {
    /**
     * The symbol of the NFT collection.
     */
    symbol: string;
    /**
     * The name of the NFT collection.
     */
    collectionName: string;
    /**
     * The name of the NFT.
     */
    nftName: string;
    /**
     * The storage of the NFT (IPFS hash).
     */
    storage?: string;
    /**
     * The private metadata of the NFT.
     */
    privateMetadata?: string;
    /**
     * The metadata root of the NFT.
     */
    metadataRoot?: string;
    /**
     * The serialized metadata map of the NFT.
     */
    map?: {
        [key: string]: unknown;
    };
    request: NftTransactionParams & {
        /**
         * The type of the NFT transaction.
         */
        txType: NftTransactionType;
    };
};
export type TokenTransactions = {
    /**
     * Array of token transactions.
     */
    txs: Array<TokenTransaction>;
};
export type NftTransactions = {
    /**
     * Array of NFT transactions.
     */
    txs: Array<NftTransaction>;
};
export type ProveTokenTransaction = {
    /**
     * The transaction object.
     */
    tx: TokenTransaction;
    /**
     * The signed data for the transaction.
     */
    signedData: string;
    /**
     * Optional. Whether to broadcast the transaction after proving.
     */
    sendTransaction?: boolean;
};
export type ProveNftTransaction = {
    /**
     * The transaction object.
     */
    tx: NftTransaction;
    /**
     * The signed data for the transaction.
     */
    signedData: string;
    /**
     * Optional. Whether to broadcast the transaction after proving.
     */
    sendTransaction?: boolean;
};
export type ProveTokenTransactions = {
    /**
     * Array of transactions to be proved.
     */
    txs: Array<ProveTokenTransaction>;
};
export type ProveNftTransactions = {
    /**
     * Array of transactions to be proved.
     */
    txs: Array<ProveNftTransaction>;
};
export type TokenState = {
    /**
     * The address of the token contract.
     */
    tokenAddress: string;
    /**
     * The unique identifier of the token.
     */
    tokenId: string;
    /**
     * The address of the admin contract.
     */
    adminContractAddress: string;
    /**
     * The address of the administrator.
     */
    adminAddress: string;
    /**
     * The token balance of the administrator.
     */
    adminTokenBalance: number;
    /**
     * The total supply of the token.
     */
    totalSupply: number;
    /**
     * Indicates if the token contract is paused.
     */
    isPaused: boolean;
    /**
     * The number of decimal places the token uses.
     */
    decimals: number;
    /**
     * The symbol of the token.
     */
    tokenSymbol: string;
    /**
     * The verification key hash of the token contract.
     */
    verificationKeyHash: string;
    /**
     * The URI of the token metadata.
     */
    uri: string;
    /**
     * The version number of the token contract.
     */
    version: number;
    /**
     * The symbol of the admin token.
     */
    adminTokenSymbol: string;
    /**
     * The URI of the admin token metadata.
     */
    adminUri: string;
    /**
     * The verification key hash of the admin contract.
     */
    adminVerificationKeyHash: string;
    adminVersion: number;
};
export type ProofResult = {
    /**
     * Indicates whether the proof generation was successful.
     */
    success?: boolean;
    /**
     * The transaction hash if the proof was successfully applied.
     */
    hash?: string;
    /**
     * Error message if proof generation failed.
     */
    error?: string;
};
export type AirdropTransactionResponse = {
    /**
     * List of token transactions created for the airdrop.
     */
    txs?: Array<TokenTransaction>;
};
/**
 * Optional. List of whitelisted addresses with optional amounts, or a string.
 */
export type Whitelist = Array<{
    /**
     * The whitelisted address.
     */
    address: string;
    /**
     * Optional. The amount allowed to bid.
     */
    amount?: number;
}> | string;
export type ContractInfoRequest = {
    /**
     * The contract address.
     */
    address: string;
    /**
     * Optional. The tokenId.
     */
    tokenId?: string;
};
export type ContractPropertyType = 'name' | 'role' | 'address' | 'tokenId' | 'verificationKey' | 'verificationKeyHash' | 'zkappVersion' | 'bigint' | 'number' | 'field' | 'boolean' | 'ipfs' | 'string' | 'uri' | 'symbol' | 'bondingCurveMintPrice' | 'bondingCurveRedeemPrice';
export type ContractProperty = {
    type: ContractPropertyType;
    value: string;
    presentation?: string;
};
export type ContractInfo = {
    name: ContractProperty & {
        type?: 'name';
    };
    address: ContractProperty & {
        type?: 'address';
    };
    tokenId: ContractProperty & {
        type?: 'tokenId';
    };
    derivedTokenId: ContractProperty & {
        type?: 'tokenId';
    };
    symbol: ContractProperty & {
        type?: 'symbol';
    };
    uri: ContractProperty & {
        type?: 'uri';
    };
    verificationKey: ContractProperty & {
        type?: 'verificationKey';
    };
    verificationKeyHash: ContractProperty & {
        type?: 'verificationKeyHash';
    };
    zkappVersion: ContractProperty & {
        type?: 'zkappVersion';
    };
    [key: string]: ContractProperty | (ContractProperty & {
        type?: 'name';
    }) | (ContractProperty & {
        type?: 'address';
    }) | (ContractProperty & {
        type?: 'tokenId';
    }) | (ContractProperty & {
        type?: 'tokenId';
    }) | (ContractProperty & {
        type?: 'symbol';
    }) | (ContractProperty & {
        type?: 'uri';
    }) | (ContractProperty & {
        type?: 'verificationKey';
    }) | (ContractProperty & {
        type?: 'verificationKeyHash';
    }) | (ContractProperty & {
        type?: 'zkappVersion';
    });
};
export type LaunchNftCollectionData = {
    body: LaunchNftCollectionStandardAdminParams | LaunchNftCollectionAdvancedAdminParams;
    path?: never;
    query?: never;
    url: '/nft/launch';
};
export type LaunchNftCollectionErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type LaunchNftCollectionError = LaunchNftCollectionErrors[keyof LaunchNftCollectionErrors];
export type LaunchNftCollectionResponses = {
    /**
     * Successful deployment of a new NFT Collection.
     */
    200: NftTransaction;
};
export type LaunchNftCollectionResponse = LaunchNftCollectionResponses[keyof LaunchNftCollectionResponses];
export type LaunchTokenData = {
    body: LaunchTokenStandardAdminParams | LaunchTokenAdvancedAdminParams | LaunchTokenBondingCurveAdminParams;
    path?: never;
    query?: never;
    url: '/token/launch';
};
export type LaunchTokenErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type LaunchTokenError = LaunchTokenErrors[keyof LaunchTokenErrors];
export type LaunchTokenResponses = {
    /**
     * Successful deployment of a new token.
     */
    200: TokenTransaction;
};
export type LaunchTokenResponse = LaunchTokenResponses[keyof LaunchTokenResponses];
export type GetContractInfoData = {
    body: ContractInfoRequest;
    path?: never;
    query?: never;
    url: '/info/contract';
};
export type GetContractInfoErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type GetContractInfoError = GetContractInfoErrors[keyof GetContractInfoErrors];
export type GetContractInfoResponses = {
    /**
     * Successful retrieval of contract info for the given contract and his admin contract and other contracts that are related to it.
     */
    200: Array<ContractInfo>;
};
export type GetContractInfoResponse = GetContractInfoResponses[keyof GetContractInfoResponses];
export type GetNftInfoData = {
    body: NftRequestParams;
    path?: never;
    query?: never;
    url: '/info/nft';
};
export type GetNftInfoErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type GetNftInfoError = GetNftInfoErrors[keyof GetNftInfoErrors];
export type GetNftInfoResponses = {
    /**
     * Successful response
     */
    200: NftRequestAnswer;
};
export type GetNftInfoResponse = GetNftInfoResponses[keyof GetNftInfoResponses];
export type GetNftV2InfoData = {
    body: NftRequestParams;
    path?: never;
    query?: never;
    url: '/info/nft-v2';
};
export type GetNftV2InfoErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type GetNftV2InfoError = GetNftV2InfoErrors[keyof GetNftV2InfoErrors];
export type GetNftV2InfoResponses = {
    /**
     * Successful response
     */
    200: NftV2RequestAnswer;
};
export type GetNftV2InfoResponse = GetNftV2InfoResponses[keyof GetNftV2InfoResponses];
export type FaucetData = {
    body: FaucetParams;
    path?: never;
    query?: never;
    url: '/faucet';
};
export type FaucetErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type FaucetError = FaucetErrors[keyof FaucetErrors];
export type FaucetResponses = {
    /**
     * Faucet response
     */
    200: FaucetResponse;
};
export type FaucetResponse2 = FaucetResponses[keyof FaucetResponses];
export type GetTokenInfoData = {
    body: TokenInfoRequestParams;
    path?: never;
    query?: never;
    url: '/info/token';
};
export type GetTokenInfoErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type GetTokenInfoError = GetTokenInfoErrors[keyof GetTokenInfoErrors];
export type GetTokenInfoResponses = {
    /**
     * Successful retrieval of token information.
     */
    200: TokenState;
};
export type GetTokenInfoResponse = GetTokenInfoResponses[keyof GetTokenInfoResponses];
export type GetTokenBalanceData = {
    body: BalanceRequestParams;
    path?: never;
    query?: never;
    url: '/info/balance';
};
export type GetTokenBalanceErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type GetTokenBalanceError = GetTokenBalanceErrors[keyof GetTokenBalanceErrors];
export type GetTokenBalanceResponses = {
    /**
     * Successful retrieval of balance.
     */
    200: BalanceResponse;
};
export type GetTokenBalanceResponse = GetTokenBalanceResponses[keyof GetTokenBalanceResponses];
export type GetNonceData = {
    body: NonceRequestParams;
    path?: never;
    query?: never;
    url: '/info/nonce';
};
export type GetNonceErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type GetNonceError = GetNonceErrors[keyof GetNonceErrors];
export type GetNonceResponses = {
    /**
     * Successful retrieval of nonce.
     */
    200: NonceResponse;
};
export type GetNonceResponse = GetNonceResponses[keyof GetNonceResponses];
export type GetTokenHoldersData = {
    body: TokenHoldersRequestParams;
    path?: never;
    query?: never;
    url: '/info/holders';
};
export type GetTokenHoldersErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type GetTokenHoldersError = GetTokenHoldersErrors[keyof GetTokenHoldersErrors];
export type GetTokenHoldersResponses = {
    /**
     * Successful retrieval of token holders.
     */
    200: TokenHoldersResponse;
};
export type GetTokenHoldersResponse = GetTokenHoldersResponses[keyof GetTokenHoldersResponses];
export type GetTransactionsData = {
    body: TransactionsListRequestParams;
    path?: never;
    query?: never;
    url: '/info/transactions';
};
export type GetTransactionsErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type GetTransactionsError = GetTransactionsErrors[keyof GetTransactionsErrors];
export type GetTransactionsResponses = {
    /**
     * Successful retrieval of transactions.
     */
    200: TransactionsListResponse;
};
export type GetTransactionsResponse = GetTransactionsResponses[keyof GetTransactionsResponses];
export type ProveData = {
    body: ProveTokenTransaction | ProveTokenTransactions | ProveNftTransaction | ProveNftTransactions;
    path?: never;
    query?: never;
    url: '/transaction/prove';
};
export type ProveErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type ProveError = ProveErrors[keyof ProveErrors];
export type ProveResponses = {
    /**
     * Successfully initiated proof generation.
     */
    200: JobId;
};
export type ProveResponse = ProveResponses[keyof ProveResponses];
export type GetProofData = {
    body: JobId;
    path?: never;
    query?: never;
    url: '/transaction/proof';
};
export type GetProofErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type GetProofError = GetProofErrors[keyof GetProofErrors];
export type GetProofResponses = {
    /**
     * Successfully retrieved job status and proofs.
     */
    200: JobResults;
};
export type GetProofResponse = GetProofResponses[keyof GetProofResponses];
export type SendTransactionData = {
    body: SendTransactionParams;
    path?: never;
    query?: never;
    url: '/transaction/send';
};
export type SendTransactionErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type SendTransactionError = SendTransactionErrors[keyof SendTransactionErrors];
export type SendTransactionResponses = {
    /**
     * Successfully sent transaction.
     */
    200: SendTransactionReply;
};
export type SendTransactionResponse = SendTransactionResponses[keyof SendTransactionResponses];
export type TxStatusData = {
    body: TransactionStatusParams;
    path?: never;
    query?: never;
    url: '/transaction/status';
};
export type TxStatusErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type TxStatusError = TxStatusErrors[keyof TxStatusErrors];
export type TxStatusResponses = {
    /**
     * Successfully retrieved transaction status.
     */
    200: TransactionStatus;
};
export type TxStatusResponse = TxStatusResponses[keyof TxStatusResponses];
export type MintTokensData = {
    body: TokenMintTransactionParams;
    path?: never;
    query?: never;
    url: '/token/mint';
};
export type MintTokensErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type MintTokensError = MintTokensErrors[keyof MintTokensErrors];
export type MintTokensResponses = {
    /**
     * Successfully built mint transaction.
     */
    200: TokenTransaction;
};
export type MintTokensResponse = MintTokensResponses[keyof MintTokensResponses];
export type MintNftData = {
    body: NftMintTransactionParams;
    path?: never;
    query?: never;
    url: '/nft/mint';
};
export type MintNftErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type MintNftError = MintNftErrors[keyof MintNftErrors];
export type MintNftResponses = {
    /**
     * Successfully built mint transaction.
     */
    200: NftTransaction;
};
export type MintNftResponse = MintNftResponses[keyof MintNftResponses];
export type TransferNftData = {
    body: NftTransferTransactionParams;
    path?: never;
    query?: never;
    url: '/nft/transfer';
};
export type TransferNftErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type TransferNftError = TransferNftErrors[keyof TransferNftErrors];
export type TransferNftResponses = {
    /**
     * Successfully built transfer transaction.
     */
    200: NftTransaction;
};
export type TransferNftResponse = TransferNftResponses[keyof TransferNftResponses];
export type CmsStoreNftData = {
    body: {
        /**
         * The signature of the Collection creator
         */
        signature: string;
        nft: CmsnftData;
    };
    path?: never;
    query?: never;
    url: '/nft/cms/store';
};
export type CmsStoreNftErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type CmsStoreNftError = CmsStoreNftErrors[keyof CmsStoreNftErrors];
export type CmsStoreNftResponses = {
    /**
     * Successfully built transfer transaction.
     */
    200: {
        /**
         * Indicates whether the NFT was successfully stored in CMS
         */
        success?: boolean;
    };
};
export type CmsStoreNftResponse = CmsStoreNftResponses[keyof CmsStoreNftResponses];
export type CmsReadNftData = {
    body: {
        /**
         * The address of the NFT collection
         */
        collectionAddress: string;
        /**
         * The name of the NFT. If not provided, all NFTs will be returned that can be minted now.
         */
        nftName?: string;
        /**
         * The signature of the Collection creator. Required to get NFTs that cannot be minted now.
         */
        signature?: string;
    };
    path?: never;
    query?: never;
    url: '/nft/cms/read';
};
export type CmsReadNftErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type CmsReadNftError = CmsReadNftErrors[keyof CmsReadNftErrors];
export type CmsReadNftResponses = {
    /**
     * Successfully retrieved NFTs from CMS.
     */
    200: {
        /**
         * The NFTs data retrieved from CMS
         */
        nfts?: Array<CmsnftData>;
    };
};
export type CmsReadNftResponse = CmsReadNftResponses[keyof CmsReadNftResponses];
export type CmsReserveNftData = {
    body: {
        /**
         * The address of the NFT collection
         */
        collectionAddress: string;
        /**
         * The name of the NFT
         */
        nftName: string;
        /**
         * Indicates whether the NFT should be reserved in CMS or the reserve should be removed. Default is true.
         */
        reserve?: boolean;
        /**
         * The signature of the Collection creator. Required if reserve is false.
         */
        signature?: string;
    };
    path?: never;
    query?: never;
    url: '/nft/cms/reserve';
};
export type CmsReserveNftErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type CmsReserveNftError = CmsReserveNftErrors[keyof CmsReserveNftErrors];
export type CmsReserveNftResponses = {
    /**
     * Successfully built transfer transaction.
     */
    200: {
        /**
         * Indicates whether the NFT was successfully reserved in CMS
         */
        reserved?: boolean;
        /**
         * The NFT data retrieved from CMS
         */
        nft?: CmsnftData;
    };
};
export type CmsReserveNftResponse = CmsReserveNftResponses[keyof CmsReserveNftResponses];
export type ApproveNftData = {
    body: NftApproveTransactionParams;
    path?: never;
    query?: never;
    url: '/nft/approve';
};
export type ApproveNftErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type ApproveNftError = ApproveNftErrors[keyof ApproveNftErrors];
export type ApproveNftResponses = {
    /**
     * Successfully built approve transaction.
     */
    200: NftTransaction;
};
export type ApproveNftResponse = ApproveNftResponses[keyof ApproveNftResponses];
export type SellNftData = {
    body: NftSellTransactionParams;
    path?: never;
    query?: never;
    url: '/nft/sell';
};
export type SellNftErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type SellNftError = SellNftErrors[keyof SellNftErrors];
export type SellNftResponses = {
    /**
     * Successfully built sell transaction.
     */
    200: NftTransaction;
};
export type SellNftResponse = SellNftResponses[keyof SellNftResponses];
export type BuyNftData = {
    body: NftBuyTransactionParams;
    path?: never;
    query?: never;
    url: '/nft/buy';
};
export type BuyNftErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type BuyNftError = BuyNftErrors[keyof BuyNftErrors];
export type BuyNftResponses = {
    /**
     * Successfully built buy transaction.
     */
    200: NftTransaction;
};
export type BuyNftResponse = BuyNftResponses[keyof BuyNftResponses];
export type TransferTokensData = {
    body: TokenTransferTransactionParams;
    path?: never;
    query?: never;
    url: '/token/transfer';
};
export type TransferTokensErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type TransferTokensError = TransferTokensErrors[keyof TransferTokensErrors];
export type TransferTokensResponses = {
    /**
     * Successfully built transfer transaction.
     */
    200: TokenTransaction;
};
export type TransferTokensResponse = TransferTokensResponses[keyof TransferTokensResponses];
export type AirdropTokensData = {
    body: TokenAirdropTransactionParams;
    path?: never;
    query?: never;
    url: '/token/airdrop';
};
export type AirdropTokensErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type AirdropTokensError = AirdropTokensErrors[keyof AirdropTokensErrors];
export type AirdropTokensResponses = {
    /**
     * Successfully built airdrop transaction.
     */
    200: AirdropTransactionResponse;
};
export type AirdropTokensResponse = AirdropTokensResponses[keyof AirdropTokensResponses];
export type RedeemTokensData = {
    body: TokenRedeemTransactionParams;
    path?: never;
    query?: never;
    url: '/token/redeem';
};
export type RedeemTokensErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type RedeemTokensError = RedeemTokensErrors[keyof RedeemTokensErrors];
export type RedeemTokensResponses = {
    /**
     * Successfully built redeem transaction.
     */
    200: TokenTransaction;
};
export type RedeemTokensResponse = RedeemTokensResponses[keyof RedeemTokensResponses];
export type BurnTokensData = {
    body: TokenBurnTransactionParams;
    path?: never;
    query?: never;
    url: '/token/burn';
};
export type BurnTokensErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type BurnTokensError = BurnTokensErrors[keyof BurnTokensErrors];
export type BurnTokensResponses = {
    /**
     * Successfully built burn transaction.
     */
    200: TokenTransaction;
};
export type BurnTokensResponse = BurnTokensResponses[keyof BurnTokensResponses];
export type TokenBidData = {
    body: TokenBidTransactionParams;
    path?: never;
    query?: never;
    url: '/token/bid/create';
};
export type TokenBidErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type TokenBidError = TokenBidErrors[keyof TokenBidErrors];
export type TokenBidResponses = {
    /**
     * Successfully built bid transaction.
     */
    200: TokenTransaction;
};
export type TokenBidResponse = TokenBidResponses[keyof TokenBidResponses];
export type TokenOfferData = {
    body: TokenOfferTransactionParams;
    path?: never;
    query?: never;
    url: '/token/offer/create';
};
export type TokenOfferErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type TokenOfferError = TokenOfferErrors[keyof TokenOfferErrors];
export type TokenOfferResponses = {
    /**
     * Successfully created offer transaction.
     */
    200: TokenTransaction;
};
export type TokenOfferResponse = TokenOfferResponses[keyof TokenOfferResponses];
export type BuyTokensData = {
    body: TokenBuyTransactionParams;
    path?: never;
    query?: never;
    url: '/token/offer/buy';
};
export type BuyTokensErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type BuyTokensError = BuyTokensErrors[keyof BuyTokensErrors];
export type BuyTokensResponses = {
    /**
     * Successfully built buy transaction.
     */
    200: TokenTransaction;
};
export type BuyTokensResponse = BuyTokensResponses[keyof BuyTokensResponses];
export type SellTokensData = {
    body: TokenSellTransactionParams;
    path?: never;
    query?: never;
    url: '/token/bid/sell';
};
export type SellTokensErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type SellTokensError = SellTokensErrors[keyof SellTokensErrors];
export type SellTokensResponses = {
    /**
     * Successfully built sell transaction.
     */
    200: TokenTransaction;
};
export type SellTokensResponse = SellTokensResponses[keyof SellTokensResponses];
export type WithdrawTokenBidData = {
    body: TokenWithdrawBidTransactionParams;
    path?: never;
    query?: never;
    url: '/token/bid/withdraw';
};
export type WithdrawTokenBidErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type WithdrawTokenBidError = WithdrawTokenBidErrors[keyof WithdrawTokenBidErrors];
export type WithdrawTokenBidResponses = {
    /**
     * Successfully built withdraw bid transaction.
     */
    200: TokenTransaction;
};
export type WithdrawTokenBidResponse = WithdrawTokenBidResponses[keyof WithdrawTokenBidResponses];
export type WithdrawTokenOfferData = {
    body: TokenWithdrawOfferTransactionParams;
    path?: never;
    query?: never;
    url: '/token/offer/withdraw';
};
export type WithdrawTokenOfferErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type WithdrawTokenOfferError = WithdrawTokenOfferErrors[keyof WithdrawTokenOfferErrors];
export type WithdrawTokenOfferResponses = {
    /**
     * Successfully built withdraw offer transaction.
     */
    200: TokenTransaction;
};
export type WithdrawTokenOfferResponse = WithdrawTokenOfferResponses[keyof WithdrawTokenOfferResponses];
export type UpdateTokenBidWhitelistData = {
    body: TokenUpdateBidWhitelistTransactionParams;
    path?: never;
    query?: never;
    url: '/token/bid/whitelist';
};
export type UpdateTokenBidWhitelistErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type UpdateTokenBidWhitelistError = UpdateTokenBidWhitelistErrors[keyof UpdateTokenBidWhitelistErrors];
export type UpdateTokenBidWhitelistResponses = {
    /**
     * Successfully built update bid whitelist transaction.
     */
    200: TokenTransaction;
};
export type UpdateTokenBidWhitelistResponse = UpdateTokenBidWhitelistResponses[keyof UpdateTokenBidWhitelistResponses];
export type UpdateTokenOfferWhitelistData = {
    body: TokenUpdateOfferWhitelistTransactionParams;
    path?: never;
    query?: never;
    url: '/token/offer/whitelist';
};
export type UpdateTokenOfferWhitelistErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type UpdateTokenOfferWhitelistError = UpdateTokenOfferWhitelistErrors[keyof UpdateTokenOfferWhitelistErrors];
export type UpdateTokenOfferWhitelistResponses = {
    /**
     * Successfully built update offer whitelist transaction.
     */
    200: TokenTransaction;
};
export type UpdateTokenOfferWhitelistResponse = UpdateTokenOfferWhitelistResponses[keyof UpdateTokenOfferWhitelistResponses];
export type UpdateTokenAdminWhitelistData = {
    body: TokenUpdateAdminWhitelistTransactionParams;
    path?: never;
    query?: never;
    url: '/token/admin/whitelist';
};
export type UpdateTokenAdminWhitelistErrors = {
    /**
     * Bad request - invalid input parameters.
     */
    400: ErrorResponse;
    /**
     * Unauthorized - user not authenticated.
     */
    401: ErrorResponse;
    /**
     * Forbidden - user doesn't have permission.
     */
    403: ErrorResponse;
    /**
     * Too many requests.
     */
    429: ErrorResponse;
    /**
     * Internal server error - something went wrong during the request.
     */
    500: ErrorResponse;
    /**
     * Service unavailable - blockchain or other external service is down.
     */
    503: ErrorResponse;
};
export type UpdateTokenAdminWhitelistError = UpdateTokenAdminWhitelistErrors[keyof UpdateTokenAdminWhitelistErrors];
export type UpdateTokenAdminWhitelistResponses = {
    /**
     * Successfully built update admin whitelist transaction.
     */
    200: TokenTransaction;
};
export type UpdateTokenAdminWhitelistResponse = UpdateTokenAdminWhitelistResponses[keyof UpdateTokenAdminWhitelistResponses];
export type ClientOptions = {
    baseUrl: 'https://minatokens.com/api/v1/' | 'https://devnet.minatokens.com/api/v1/' | 'https://zekotokens.com/api/v1/' | (string & {});
};
