import { Serializable } from '../../../internal/interfaces/serializable';
export declare class AddSubAccountReq implements Serializable {
    /**
     * Password (7–24 characters, must contain letters and numbers, cannot only contain numbers or include special characters)
     */
    password: string;
    /**
     * Remarks (1–24 characters)
     */
    remarks?: string;
    /**
     * Sub-account name (must contain 7–32 characters, at least one number and one letter. Cannot contain any spaces.)
     */
    subName: string;
    /**
     * Permission (types include Spot, Futures, Margin permissions, which can be used alone or in combination).
     */
    access: AddSubAccountReq.AccessEnum;
    /**
     * Private constructor, please use the corresponding static methods to construct the object.
     */
    private constructor();
    /**
     * Creates a new instance of the `AddSubAccountReq` class.
     * The builder pattern allows step-by-step construction of a `AddSubAccountReq` object.
     */
    static builder(): AddSubAccountReqBuilder;
    /**
     * Creates a new instance of the `AddSubAccountReq` class with the given data.
     */
    static create(data: {
        /**
         * Password (7–24 characters, must contain letters and numbers, cannot only contain numbers or include special characters)
         */
        password: string;
        /**
         * Remarks (1–24 characters)
         */
        remarks?: string;
        /**
         * Sub-account name (must contain 7–32 characters, at least one number and one letter. Cannot contain any spaces.)
         */
        subName: string;
        /**
         * Permission (types include Spot, Futures, Margin permissions, which can be used alone or in combination).
         */
        access: AddSubAccountReq.AccessEnum;
    }): AddSubAccountReq;
    /**
     * Convert the object to a JSON string.
     */
    toJson(): string;
    /**
     * Create an object from a JSON string.
     */
    static fromJson(input: string): AddSubAccountReq;
    /**
     * Create an object from Js Object.
     */
    static fromObject(jsonObject: Object): AddSubAccountReq;
}
export declare namespace AddSubAccountReq {
    enum AccessEnum {
        /**
         * Spot Account
         */
        SPOT,
        /**
         * Futures Account
         */
        FUTURES,
        /**
         * Margin Account
         */
        MARGIN
    }
}
export declare class AddSubAccountReqBuilder {
    readonly obj: AddSubAccountReq;
    constructor(obj: AddSubAccountReq);
    /**
     * Password (7–24 characters, must contain letters and numbers, cannot only contain numbers or include special characters)
     */
    setPassword(value: string): AddSubAccountReqBuilder;
    /**
     * Remarks (1–24 characters)
     */
    setRemarks(value: string): AddSubAccountReqBuilder;
    /**
     * Sub-account name (must contain 7–32 characters, at least one number and one letter. Cannot contain any spaces.)
     */
    setSubName(value: string): AddSubAccountReqBuilder;
    /**
     * Permission (types include Spot, Futures, Margin permissions, which can be used alone or in combination).
     */
    setAccess(value: AddSubAccountReq.AccessEnum): AddSubAccountReqBuilder;
    /**
     * Get the final object.
     */
    build(): AddSubAccountReq;
}
