import { Serializable } from '../../../internal/interfaces/serializable';
export declare class ModifySubAccountApiReq implements Serializable {
    /**
     * Password (Must contain 7–32 characters. Cannot contain any spaces.)
     */
    passphrase: 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?: ModifySubAccountApiReq.ExpireEnum;
    /**
     * Sub-account name, create sub account name of API Key.
     */
    subName: string;
    /**
     * API-Key (Sub-account APIKey)
     */
    apiKey: string;
    /**
     * Private constructor, please use the corresponding static methods to construct the object.
     */
    private constructor();
    /**
     * Creates a new instance of the `ModifySubAccountApiReq` class.
     * The builder pattern allows step-by-step construction of a `ModifySubAccountApiReq` object.
     */
    static builder(): ModifySubAccountApiReqBuilder;
    /**
     * Creates a new instance of the `ModifySubAccountApiReq` class with the given data.
     */
    static create(data: {
        /**
         * Password (Must contain 7–32 characters. Cannot contain any spaces.)
         */
        passphrase: 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?: ModifySubAccountApiReq.ExpireEnum;
        /**
         * Sub-account name, create sub account name of API Key.
         */
        subName: string;
        /**
         * API-Key (Sub-account APIKey)
         */
        apiKey: string;
    }): ModifySubAccountApiReq;
    /**
     * Convert the object to a JSON string.
     */
    toJson(): string;
    /**
     * Create an object from a JSON string.
     */
    static fromJson(input: string): ModifySubAccountApiReq;
    /**
     * Create an object from Js Object.
     */
    static fromObject(jsonObject: Object): ModifySubAccountApiReq;
}
export declare namespace ModifySubAccountApiReq {
    enum ExpireEnum {
        /**
         *
         */
        _1,
        /**
         *
         */
        _30,
        /**
         *
         */
        _90,
        /**
         *
         */
        _180,
        /**
         *
         */
        _360
    }
}
export declare class ModifySubAccountApiReqBuilder {
    readonly obj: ModifySubAccountApiReq;
    constructor(obj: ModifySubAccountApiReq);
    /**
     * Password (Must contain 7–32 characters. Cannot contain any spaces.)
     */
    setPassphrase(value: string): ModifySubAccountApiReqBuilder;
    /**
     * [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): ModifySubAccountApiReqBuilder;
    /**
     * IP whitelist (You may add up to 20 IPs. Use a halfwidth comma to each IP)
     */
    setIpWhitelist(value: string): ModifySubAccountApiReqBuilder;
    /**
     * API expiration time: Never expire(default)-1, 30Day30, 90Day90, 180Day180, 360Day360
     */
    setExpire(value: ModifySubAccountApiReq.ExpireEnum): ModifySubAccountApiReqBuilder;
    /**
     * Sub-account name, create sub account name of API Key.
     */
    setSubName(value: string): ModifySubAccountApiReqBuilder;
    /**
     * API-Key (Sub-account APIKey)
     */
    setApiKey(value: string): ModifySubAccountApiReqBuilder;
    /**
     * Get the final object.
     */
    build(): ModifySubAccountApiReq;
}
