import { Serializable } from '../../../internal/interfaces/serializable';
export declare class AddDepositAddressV1Req implements Serializable {
    /**
     * currency
     */
    currency: string;
    /**
     * The chainId of currency, e.g. the available values for USDT are OMNI, ERC20, and TRC20; default is ERC20. The available values for BTC are Native, Segwit, TRC20; the parameters are bech32, btc, trx; default is Native. This only applies to multi-chain currencies; no need for single-chain currencies.
     */
    chain?: string;
    /**
     * Deposit account type: main (funding account), trade (spot trading account); the default is main
     */
    to?: AddDepositAddressV1Req.ToEnum;
    /**
     * Private constructor, please use the corresponding static methods to construct the object.
     */
    private constructor();
    /**
     * Creates a new instance of the `AddDepositAddressV1Req` class.
     * The builder pattern allows step-by-step construction of a `AddDepositAddressV1Req` object.
     */
    static builder(): AddDepositAddressV1ReqBuilder;
    /**
     * Creates a new instance of the `AddDepositAddressV1Req` class with the given data.
     */
    static create(data: {
        /**
         * currency
         */
        currency: string;
        /**
         * The chainId of currency, e.g. the available values for USDT are OMNI, ERC20, and TRC20; default is ERC20. The available values for BTC are Native, Segwit, TRC20; the parameters are bech32, btc, trx; default is Native. This only applies to multi-chain currencies; no need for single-chain currencies.
         */
        chain?: string;
        /**
         * Deposit account type: main (funding account), trade (spot trading account); the default is main
         */
        to?: AddDepositAddressV1Req.ToEnum;
    }): AddDepositAddressV1Req;
    /**
     * Convert the object to a JSON string.
     */
    toJson(): string;
    /**
     * Create an object from a JSON string.
     */
    static fromJson(input: string): AddDepositAddressV1Req;
    /**
     * Create an object from Js Object.
     */
    static fromObject(jsonObject: Object): AddDepositAddressV1Req;
}
export declare namespace AddDepositAddressV1Req {
    enum ToEnum {
        /**
         * Funding account
         */
        MAIN,
        /**
         * Spot account
         */
        TRADE
    }
}
export declare class AddDepositAddressV1ReqBuilder {
    readonly obj: AddDepositAddressV1Req;
    constructor(obj: AddDepositAddressV1Req);
    /**
     * currency
     */
    setCurrency(value: string): AddDepositAddressV1ReqBuilder;
    /**
     * The chainId of currency, e.g. the available values for USDT are OMNI, ERC20, and TRC20; default is ERC20. The available values for BTC are Native, Segwit, TRC20; the parameters are bech32, btc, trx; default is Native. This only applies to multi-chain currencies; no need for single-chain currencies.
     */
    setChain(value: string): AddDepositAddressV1ReqBuilder;
    /**
     * Deposit account type: main (funding account), trade (spot trading account); the default is main
     */
    setTo(value: AddDepositAddressV1Req.ToEnum): AddDepositAddressV1ReqBuilder;
    /**
     * Get the final object.
     */
    build(): AddDepositAddressV1Req;
}
