import { Serializable } from '../../../internal/interfaces/serializable';
export declare class AddSubAccountApiReq implements Serializable {
    /**
     * Password (Must contain 7–32 characters. Cannot contain any spaces.)
     */
    passphrase: string;
    /**
     * Remarks (1–24 characters)
     */
    remark: string;
    /**
     * [Permissions](https://www.kucoin.com/docs-new/doc-338144)(Only General, Spot, Futures, Margin, InnerTransfer (Flex Transfer) permissions can be set, such as \"General, Trade\". The default is \"General\")
     */
    permission?: string;
    /**
     * IP whitelist (You may add up to 20 IPs. Use a halfwidth comma to each IP)
     */
    ipWhitelist?: string;
    /**
     * API expiration time: Never expire(default)-1, 30Day30, 90Day90, 180Day180, 360Day360
     */
    expire?: AddSubAccountApiReq.ExpireEnum;
    /**
     * Sub-account name, create sub account name of API Key.
     */
    subName: 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: {
        /**
         * Password (Must contain 7–32 characters. Cannot contain any spaces.)
         */
        passphrase: string;
        /**
         * Remarks (1–24 characters)
         */
        remark: string;
        /**
         * [Permissions](https://www.kucoin.com/docs-new/doc-338144)(Only General, Spot, Futures, Margin, InnerTransfer (Flex Transfer) permissions can be set, such as \"General, Trade\". The default is \"General\")
         */
        permission?: string;
        /**
         * IP whitelist (You may add up to 20 IPs. Use a halfwidth comma to each IP)
         */
        ipWhitelist?: string;
        /**
         * API expiration time: Never expire(default)-1, 30Day30, 90Day90, 180Day180, 360Day360
         */
        expire?: AddSubAccountApiReq.ExpireEnum;
        /**
         * Sub-account name, create sub account name of API Key.
         */
        subName: 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 ExpireEnum {
        /**
         *
         */
        _1,
        /**
         *
         */
        _30,
        /**
         *
         */
        _90,
        /**
         *
         */
        _180,
        /**
         *
         */
        _360
    }
}
export declare class AddSubAccountApiReqBuilder {
    readonly obj: AddSubAccountApiReq;
    constructor(obj: AddSubAccountApiReq);
    /**
     * Password (Must contain 7–32 characters. Cannot contain any spaces.)
     */
    setPassphrase(value: string): AddSubAccountApiReqBuilder;
    /**
     * Remarks (1–24 characters)
     */
    setRemark(value: string): AddSubAccountApiReqBuilder;
    /**
     * [Permissions](https://www.kucoin.com/docs-new/doc-338144)(Only General, Spot, Futures, Margin, InnerTransfer (Flex Transfer) permissions can be set, such as \"General, Trade\". The default is \"General\")
     */
    setPermission(value: string): AddSubAccountApiReqBuilder;
    /**
     * IP whitelist (You may add up to 20 IPs. Use a halfwidth comma to each IP)
     */
    setIpWhitelist(value: string): AddSubAccountApiReqBuilder;
    /**
     * API expiration time: Never expire(default)-1, 30Day30, 90Day90, 180Day180, 360Day360
     */
    setExpire(value: AddSubAccountApiReq.ExpireEnum): AddSubAccountApiReqBuilder;
    /**
     * Sub-account name, create sub account name of API Key.
     */
    setSubName(value: string): AddSubAccountApiReqBuilder;
    /**
     * Get the final object.
     */
    build(): AddSubAccountApiReq;
}
