import { z } from 'zod';
/**
 * Parameters for transferring an NFT
 */
export declare const BaseTransferParamsSchema: z.ZodObject<{
    /**
     * The NFT token
     *
     * - For EVM, the token is in the format of contractAddress:tokenId
     * - For Solana, the token is the mint address
     */
    token: z.ZodString;
}, "strip", z.ZodTypeAny, {
    token: string;
}, {
    token: string;
}>;
export declare const EvmTransferParamsSchema: z.ZodObject<z.objectUtil.extendShape<{
    /**
     * The NFT token
     *
     * - For EVM, the token is in the format of contractAddress:tokenId
     * - For Solana, the token is the mint address
     */
    token: z.ZodString;
}, {
    /**
     * The number of NFTs to transfer
     */
    quantity: z.ZodOptional<z.ZodNumber>;
}>, "strip", z.ZodTypeAny, {
    token: string;
    quantity?: number | undefined;
}, {
    token: string;
    quantity?: number | undefined;
}>;
export declare const EvmMultipleTransferParamsSchema: z.ZodObject<{
    /**
     * The EVM chain to transfer the NFT on
     */
    chain: z.ZodEnum<[import("../../chains").Blockchain.ETHEREUM, import("../../chains").Blockchain.BASE, import("../../chains").Blockchain.POLYGON, import("../../chains").Blockchain.SEI, import("../../chains").Blockchain.ARBITRUM, import("../../chains").Blockchain.APECHAIN, import("../../chains").Blockchain.BERACHAIN, import("../../chains").Blockchain.MONAD_TESTNET, import("../../chains").Blockchain.BSC, import("../../chains").Blockchain.ABSTRACT]>;
    /**
     * The recipient's wallet address
     */
    to: z.ZodString;
    /**
     * The items (NFTs) to transfer
     */
    items: z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
        /**
         * The NFT token
         *
         * - For EVM, the token is in the format of contractAddress:tokenId
         * - For Solana, the token is the mint address
         */
        token: z.ZodString;
    }, {
        /**
         * The number of NFTs to transfer
         */
        quantity: z.ZodOptional<z.ZodNumber>;
    }>, "strip", z.ZodTypeAny, {
        token: string;
        quantity?: number | undefined;
    }, {
        token: string;
        quantity?: number | undefined;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    chain: import("../../chains").Blockchain.ETHEREUM | import("../../chains").Blockchain.POLYGON | import("../../chains").Blockchain.BASE | import("../../chains").Blockchain.SEI | import("../../chains").Blockchain.ARBITRUM | import("../../chains").Blockchain.APECHAIN | import("../../chains").Blockchain.BERACHAIN | import("../../chains").Blockchain.MONAD_TESTNET | import("../../chains").Blockchain.BSC | import("../../chains").Blockchain.ABSTRACT;
    to: string;
    items: {
        token: string;
        quantity?: number | undefined;
    }[];
}, {
    chain: import("../../chains").Blockchain.ETHEREUM | import("../../chains").Blockchain.POLYGON | import("../../chains").Blockchain.BASE | import("../../chains").Blockchain.SEI | import("../../chains").Blockchain.ARBITRUM | import("../../chains").Blockchain.APECHAIN | import("../../chains").Blockchain.BERACHAIN | import("../../chains").Blockchain.MONAD_TESTNET | import("../../chains").Blockchain.BSC | import("../../chains").Blockchain.ABSTRACT;
    to: string;
    items: {
        token: string;
        quantity?: number | undefined;
    }[];
}>;
export declare const SolanaTransferParamsSchema: z.ZodObject<z.objectUtil.extendShape<{
    /**
     * The NFT token
     *
     * - For EVM, the token is in the format of contractAddress:tokenId
     * - For Solana, the token is the mint address
     */
    token: z.ZodString;
}, {
    /**
     * The recipient's wallet address
     */
    to: z.ZodString;
    /**
     * Whether the NFT is a compressed NFT
     */
    isCompressed: z.ZodOptional<z.ZodBoolean>;
    /**
     * The priority fee in micro lamports
     */
    priorityFee: z.ZodOptional<z.ZodNumber>;
}>, "strip", z.ZodTypeAny, {
    to: string;
    token: string;
    isCompressed?: boolean | undefined;
    priorityFee?: number | undefined;
}, {
    to: string;
    token: string;
    isCompressed?: boolean | undefined;
    priorityFee?: number | undefined;
}>;
export type EvmTransferParams = z.infer<typeof EvmMultipleTransferParamsSchema>;
export type SolanaTransferParams = z.infer<typeof SolanaTransferParamsSchema>;
export declare const TransferParams: z.ZodUnion<[z.ZodObject<{
    /**
     * The EVM chain to transfer the NFT on
     */
    chain: z.ZodEnum<[import("../../chains").Blockchain.ETHEREUM, import("../../chains").Blockchain.BASE, import("../../chains").Blockchain.POLYGON, import("../../chains").Blockchain.SEI, import("../../chains").Blockchain.ARBITRUM, import("../../chains").Blockchain.APECHAIN, import("../../chains").Blockchain.BERACHAIN, import("../../chains").Blockchain.MONAD_TESTNET, import("../../chains").Blockchain.BSC, import("../../chains").Blockchain.ABSTRACT]>;
    /**
     * The recipient's wallet address
     */
    to: z.ZodString;
    /**
     * The items (NFTs) to transfer
     */
    items: z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{
        /**
         * The NFT token
         *
         * - For EVM, the token is in the format of contractAddress:tokenId
         * - For Solana, the token is the mint address
         */
        token: z.ZodString;
    }, {
        /**
         * The number of NFTs to transfer
         */
        quantity: z.ZodOptional<z.ZodNumber>;
    }>, "strip", z.ZodTypeAny, {
        token: string;
        quantity?: number | undefined;
    }, {
        token: string;
        quantity?: number | undefined;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    chain: import("../../chains").Blockchain.ETHEREUM | import("../../chains").Blockchain.POLYGON | import("../../chains").Blockchain.BASE | import("../../chains").Blockchain.SEI | import("../../chains").Blockchain.ARBITRUM | import("../../chains").Blockchain.APECHAIN | import("../../chains").Blockchain.BERACHAIN | import("../../chains").Blockchain.MONAD_TESTNET | import("../../chains").Blockchain.BSC | import("../../chains").Blockchain.ABSTRACT;
    to: string;
    items: {
        token: string;
        quantity?: number | undefined;
    }[];
}, {
    chain: import("../../chains").Blockchain.ETHEREUM | import("../../chains").Blockchain.POLYGON | import("../../chains").Blockchain.BASE | import("../../chains").Blockchain.SEI | import("../../chains").Blockchain.ARBITRUM | import("../../chains").Blockchain.APECHAIN | import("../../chains").Blockchain.BERACHAIN | import("../../chains").Blockchain.MONAD_TESTNET | import("../../chains").Blockchain.BSC | import("../../chains").Blockchain.ABSTRACT;
    to: string;
    items: {
        token: string;
        quantity?: number | undefined;
    }[];
}>, z.ZodObject<z.objectUtil.extendShape<{
    /**
     * The NFT token
     *
     * - For EVM, the token is in the format of contractAddress:tokenId
     * - For Solana, the token is the mint address
     */
    token: z.ZodString;
}, {
    /**
     * The recipient's wallet address
     */
    to: z.ZodString;
    /**
     * Whether the NFT is a compressed NFT
     */
    isCompressed: z.ZodOptional<z.ZodBoolean>;
    /**
     * The priority fee in micro lamports
     */
    priorityFee: z.ZodOptional<z.ZodNumber>;
}>, "strip", z.ZodTypeAny, {
    to: string;
    token: string;
    isCompressed?: boolean | undefined;
    priorityFee?: number | undefined;
}, {
    to: string;
    token: string;
    isCompressed?: boolean | undefined;
    priorityFee?: number | undefined;
}>]>;
export type TransferParams = z.infer<typeof TransferParams>;
