import { Serializable } from '../../../internal/interfaces/serializable';
export declare class BorrowReq implements Serializable {
    /**
     * currency
     */
    currency: string;
    /**
     * Borrow amount
     */
    size: number;
    /**
     * timeInForce: IOC, FOK
     */
    timeInForce: BorrowReq.TimeInForceEnum;
    /**
     * symbol, mandatory for isolated margin account
     */
    symbol?: string;
    /**
     * true-isolated, false-cross; default is false
     */
    isIsolated?: boolean;
    /**
     * true: high frequency borrowing, false: low frequency borrowing; default false
     */
    isHf?: boolean;
    /**
     * Private constructor, please use the corresponding static methods to construct the object.
     */
    private constructor();
    /**
     * Creates a new instance of the `BorrowReq` class.
     * The builder pattern allows step-by-step construction of a `BorrowReq` object.
     */
    static builder(): BorrowReqBuilder;
    /**
     * Creates a new instance of the `BorrowReq` class with the given data.
     */
    static create(data: {
        /**
         * currency
         */
        currency: string;
        /**
         * Borrow amount
         */
        size: number;
        /**
         * timeInForce: IOC, FOK
         */
        timeInForce: BorrowReq.TimeInForceEnum;
        /**
         * symbol, mandatory for isolated margin account
         */
        symbol?: string;
        /**
         * true-isolated, false-cross; default is false
         */
        isIsolated?: boolean;
        /**
         * true: high frequency borrowing, false: low frequency borrowing; default false
         */
        isHf?: boolean;
    }): BorrowReq;
    /**
     * Convert the object to a JSON string.
     */
    toJson(): string;
    /**
     * Create an object from a JSON string.
     */
    static fromJson(input: string): BorrowReq;
    /**
     * Create an object from Js Object.
     */
    static fromObject(jsonObject: Object): BorrowReq;
}
export declare namespace BorrowReq {
    enum TimeInForceEnum {
        /**
         *
         */
        IOC,
        /**
         *
         */
        FOK
    }
}
export declare class BorrowReqBuilder {
    readonly obj: BorrowReq;
    constructor(obj: BorrowReq);
    /**
     * currency
     */
    setCurrency(value: string): BorrowReqBuilder;
    /**
     * Borrow amount
     */
    setSize(value: number): BorrowReqBuilder;
    /**
     * timeInForce: IOC, FOK
     */
    setTimeInForce(value: BorrowReq.TimeInForceEnum): BorrowReqBuilder;
    /**
     * symbol, mandatory for isolated margin account
     */
    setSymbol(value: string): BorrowReqBuilder;
    /**
     * true-isolated, false-cross; default is false
     */
    setIsIsolated(value: boolean): BorrowReqBuilder;
    /**
     * true: high frequency borrowing, false: low frequency borrowing; default false
     */
    setIsHf(value: boolean): BorrowReqBuilder;
    /**
     * Get the final object.
     */
    build(): BorrowReq;
}
