import { Serializable } from '../../../internal/interfaces/serializable';
export declare class AddSubAccountApiReq implements Serializable {
    /**
     * Sub-account UID
     */
    uid: string;
    /**
     * API passphrase
     */
    passphrase: string;
    /**
     * IP whitelist list, supports up to 20 IPs
     */
    ipWhitelist: Array<string>;
    /**
     * Permission group list (only General, Spot and Futures permissions can be set, such as \"General, Trade\").
     */
    permissions: Array<AddSubAccountApiReq.PermissionsEnum>;
    /**
     * apikey remarks (length 4~32)
     */
    label: string;
    /**
     * Private constructor, please use the corresponding static methods to construct the object.
     */
    private constructor();
    /**
     * Creates a new instance of the `AddSubAccountApiReq` class.
     * The builder pattern allows step-by-step construction of a `AddSubAccountApiReq` object.
     */
    static builder(): AddSubAccountApiReqBuilder;
    /**
     * Creates a new instance of the `AddSubAccountApiReq` class with the given data.
     */
    static create(data: {
        /**
         * Sub-account UID
         */
        uid: string;
        /**
         * API passphrase
         */
        passphrase: string;
        /**
         * IP whitelist list, supports up to 20 IPs
         */
        ipWhitelist: Array<string>;
        /**
         * Permission group list (only General, Spot and Futures permissions can be set, such as \"General, Trade\").
         */
        permissions: Array<AddSubAccountApiReq.PermissionsEnum>;
        /**
         * apikey remarks (length 4~32)
         */
        label: string;
    }): AddSubAccountApiReq;
    /**
     * Convert the object to a JSON string.
     */
    toJson(): string;
    /**
     * Create an object from a JSON string.
     */
    static fromJson(input: string): AddSubAccountApiReq;
    /**
     * Create an object from Js Object.
     */
    static fromObject(jsonObject: Object): AddSubAccountApiReq;
}
export declare namespace AddSubAccountApiReq {
    enum PermissionsEnum {
        /**
         *
         */
        GENERAL,
        /**
         *
         */
        SPOT,
        /**
         *
         */
        FUTURES
    }
}
export declare class AddSubAccountApiReqBuilder {
    readonly obj: AddSubAccountApiReq;
    constructor(obj: AddSubAccountApiReq);
    /**
     * Sub-account UID
     */
    setUid(value: string): AddSubAccountApiReqBuilder;
    /**
     * API passphrase
     */
    setPassphrase(value: string): AddSubAccountApiReqBuilder;
    /**
     * IP whitelist list, supports up to 20 IPs
     */
    setIpWhitelist(value: Array<string>): AddSubAccountApiReqBuilder;
    /**
     * Permission group list (only General, Spot and Futures permissions can be set, such as \"General, Trade\").
     */
    setPermissions(value: Array<AddSubAccountApiReq.PermissionsEnum>): AddSubAccountApiReqBuilder;
    /**
     * apikey remarks (length 4~32)
     */
    setLabel(value: string): AddSubAccountApiReqBuilder;
    /**
     * Get the final object.
     */
    build(): AddSubAccountApiReq;
}
