import { BadRequestError, CONVERT_REST_API_PROD_URL, ConfigurationRestAPI, ConnectorClientError, ForbiddenError, NetworkError, NotFoundError, RateLimitBanError, RequiredError, RestApiResponse, ServerError, TooManyRequestsError, UnauthorizedError } from "@binance/common";

//#region src/rest-api/types/accept-quote-response.d.ts

/**
 * Binance Convert REST API
 *
 * OpenAPI Specification for the Binance Convert REST API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 *
 * @export
 * @interface AcceptQuoteResponse
 */
interface AcceptQuoteResponse {
  /**
   *
   * @type {string}
   * @memberof AcceptQuoteResponse
   */
  orderId?: string;
  /**
   *
   * @type {number | bigint}
   * @memberof AcceptQuoteResponse
   */
  createTime?: number | bigint;
  /**
   *
   * @type {string}
   * @memberof AcceptQuoteResponse
   */
  orderStatus?: string;
}
//#endregion
//#region src/rest-api/types/cancel-limit-order-response.d.ts
/**
 * Binance Convert REST API
 *
 * OpenAPI Specification for the Binance Convert REST API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 *
 * @export
 * @interface CancelLimitOrderResponse
 */
interface CancelLimitOrderResponse {
  /**
   *
   * @type {number | bigint}
   * @memberof CancelLimitOrderResponse
   */
  orderId?: number | bigint;
  /**
   *
   * @type {string}
   * @memberof CancelLimitOrderResponse
   */
  status?: string;
}
//#endregion
//#region src/rest-api/types/get-convert-trade-history-response-list-inner.d.ts
/**
 * Binance Convert REST API
 *
 * OpenAPI Specification for the Binance Convert REST API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 *
 * @export
 * @interface GetConvertTradeHistoryResponseListInner
 */
interface GetConvertTradeHistoryResponseListInner {
  /**
   *
   * @type {string}
   * @memberof GetConvertTradeHistoryResponseListInner
   */
  quoteId?: string;
  /**
   *
   * @type {number | bigint}
   * @memberof GetConvertTradeHistoryResponseListInner
   */
  orderId?: number | bigint;
  /**
   *
   * @type {string}
   * @memberof GetConvertTradeHistoryResponseListInner
   */
  orderStatus?: string;
  /**
   *
   * @type {string}
   * @memberof GetConvertTradeHistoryResponseListInner
   */
  fromAsset?: string;
  /**
   *
   * @type {string}
   * @memberof GetConvertTradeHistoryResponseListInner
   */
  fromAmount?: string;
  /**
   *
   * @type {string}
   * @memberof GetConvertTradeHistoryResponseListInner
   */
  toAsset?: string;
  /**
   *
   * @type {string}
   * @memberof GetConvertTradeHistoryResponseListInner
   */
  toAmount?: string;
  /**
   *
   * @type {string}
   * @memberof GetConvertTradeHistoryResponseListInner
   */
  ratio?: string;
  /**
   *
   * @type {string}
   * @memberof GetConvertTradeHistoryResponseListInner
   */
  inverseRatio?: string;
  /**
   *
   * @type {number | bigint}
   * @memberof GetConvertTradeHistoryResponseListInner
   */
  createTime?: number | bigint;
}
//#endregion
//#region src/rest-api/types/get-convert-trade-history-response.d.ts
/**
 *
 * @export
 * @interface GetConvertTradeHistoryResponse
 */
interface GetConvertTradeHistoryResponse {
  /**
   *
   * @type {Array<GetConvertTradeHistoryResponseListInner>}
   * @memberof GetConvertTradeHistoryResponse
   */
  list?: Array<GetConvertTradeHistoryResponseListInner>;
  /**
   *
   * @type {number | bigint}
   * @memberof GetConvertTradeHistoryResponse
   */
  startTime?: number | bigint;
  /**
   *
   * @type {number | bigint}
   * @memberof GetConvertTradeHistoryResponse
   */
  endTime?: number | bigint;
  /**
   *
   * @type {number | bigint}
   * @memberof GetConvertTradeHistoryResponse
   */
  limit?: number | bigint;
  /**
   *
   * @type {boolean}
   * @memberof GetConvertTradeHistoryResponse
   */
  moreData?: boolean;
}
//#endregion
//#region src/rest-api/types/list-all-convert-pairs-response-inner.d.ts
/**
 * Binance Convert REST API
 *
 * OpenAPI Specification for the Binance Convert REST API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 *
 * @export
 * @interface ListAllConvertPairsResponseInner
 */
interface ListAllConvertPairsResponseInner {
  /**
   *
   * @type {string}
   * @memberof ListAllConvertPairsResponseInner
   */
  fromAsset?: string;
  /**
   *
   * @type {string}
   * @memberof ListAllConvertPairsResponseInner
   */
  toAsset?: string;
  /**
   *
   * @type {string}
   * @memberof ListAllConvertPairsResponseInner
   */
  fromAssetMinAmount?: string;
  /**
   *
   * @type {string}
   * @memberof ListAllConvertPairsResponseInner
   */
  fromAssetMaxAmount?: string;
  /**
   *
   * @type {string}
   * @memberof ListAllConvertPairsResponseInner
   */
  toAssetMinAmount?: string;
  /**
   *
   * @type {string}
   * @memberof ListAllConvertPairsResponseInner
   */
  toAssetMaxAmount?: string;
}
//#endregion
//#region src/rest-api/types/list-all-convert-pairs-response.d.ts
/**
 *
 * @export
 * @interface ListAllConvertPairsResponse
 */
interface ListAllConvertPairsResponse extends Array<ListAllConvertPairsResponseInner> {}
//#endregion
//#region src/rest-api/types/order-status-response.d.ts
/**
 * Binance Convert REST API
 *
 * OpenAPI Specification for the Binance Convert REST API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 *
 * @export
 * @interface OrderStatusResponse
 */
interface OrderStatusResponse {
  /**
   *
   * @type {number | bigint}
   * @memberof OrderStatusResponse
   */
  orderId?: number | bigint;
  /**
   *
   * @type {string}
   * @memberof OrderStatusResponse
   */
  orderStatus?: string;
  /**
   *
   * @type {string}
   * @memberof OrderStatusResponse
   */
  fromAsset?: string;
  /**
   *
   * @type {string}
   * @memberof OrderStatusResponse
   */
  fromAmount?: string;
  /**
   *
   * @type {string}
   * @memberof OrderStatusResponse
   */
  toAsset?: string;
  /**
   *
   * @type {string}
   * @memberof OrderStatusResponse
   */
  toAmount?: string;
  /**
   *
   * @type {string}
   * @memberof OrderStatusResponse
   */
  ratio?: string;
  /**
   *
   * @type {string}
   * @memberof OrderStatusResponse
   */
  inverseRatio?: string;
  /**
   *
   * @type {number | bigint}
   * @memberof OrderStatusResponse
   */
  createTime?: number | bigint;
}
//#endregion
//#region src/rest-api/types/place-limit-order-response.d.ts
/**
 * Binance Convert REST API
 *
 * OpenAPI Specification for the Binance Convert REST API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 *
 * @export
 * @interface PlaceLimitOrderResponse
 */
interface PlaceLimitOrderResponse {
  /**
   *
   * @type {number | bigint}
   * @memberof PlaceLimitOrderResponse
   */
  orderId?: number | bigint;
  /**
   *
   * @type {string}
   * @memberof PlaceLimitOrderResponse
   */
  status?: string;
}
//#endregion
//#region src/rest-api/types/query-limit-open-orders-response-list-inner.d.ts
/**
 * Binance Convert REST API
 *
 * OpenAPI Specification for the Binance Convert REST API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 *
 * @export
 * @interface QueryLimitOpenOrdersResponseListInner
 */
interface QueryLimitOpenOrdersResponseListInner {
  /**
   *
   * @type {string}
   * @memberof QueryLimitOpenOrdersResponseListInner
   */
  quoteId?: string;
  /**
   *
   * @type {number | bigint}
   * @memberof QueryLimitOpenOrdersResponseListInner
   */
  orderId?: number | bigint;
  /**
   *
   * @type {string}
   * @memberof QueryLimitOpenOrdersResponseListInner
   */
  orderStatus?: string;
  /**
   *
   * @type {string}
   * @memberof QueryLimitOpenOrdersResponseListInner
   */
  fromAsset?: string;
  /**
   *
   * @type {string}
   * @memberof QueryLimitOpenOrdersResponseListInner
   */
  fromAmount?: string;
  /**
   *
   * @type {string}
   * @memberof QueryLimitOpenOrdersResponseListInner
   */
  toAsset?: string;
  /**
   *
   * @type {string}
   * @memberof QueryLimitOpenOrdersResponseListInner
   */
  toAmount?: string;
  /**
   *
   * @type {string}
   * @memberof QueryLimitOpenOrdersResponseListInner
   */
  ratio?: string;
  /**
   *
   * @type {string}
   * @memberof QueryLimitOpenOrdersResponseListInner
   */
  inverseRatio?: string;
  /**
   *
   * @type {number | bigint}
   * @memberof QueryLimitOpenOrdersResponseListInner
   */
  createTime?: number | bigint;
  /**
   *
   * @type {number | bigint}
   * @memberof QueryLimitOpenOrdersResponseListInner
   */
  expiredTimestamp?: number | bigint;
}
//#endregion
//#region src/rest-api/types/query-limit-open-orders-response.d.ts
/**
 *
 * @export
 * @interface QueryLimitOpenOrdersResponse
 */
interface QueryLimitOpenOrdersResponse {
  /**
   *
   * @type {Array<QueryLimitOpenOrdersResponseListInner>}
   * @memberof QueryLimitOpenOrdersResponse
   */
  list?: Array<QueryLimitOpenOrdersResponseListInner>;
}
//#endregion
//#region src/rest-api/types/query-order-quantity-precision-per-asset-response-inner.d.ts
/**
 * Binance Convert REST API
 *
 * OpenAPI Specification for the Binance Convert REST API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 *
 * @export
 * @interface QueryOrderQuantityPrecisionPerAssetResponseInner
 */
interface QueryOrderQuantityPrecisionPerAssetResponseInner {
  /**
   *
   * @type {string}
   * @memberof QueryOrderQuantityPrecisionPerAssetResponseInner
   */
  asset?: string;
  /**
   *
   * @type {number | bigint}
   * @memberof QueryOrderQuantityPrecisionPerAssetResponseInner
   */
  fraction?: number | bigint;
}
//#endregion
//#region src/rest-api/types/query-order-quantity-precision-per-asset-response.d.ts
/**
 *
 * @export
 * @interface QueryOrderQuantityPrecisionPerAssetResponse
 */
interface QueryOrderQuantityPrecisionPerAssetResponse extends Array<QueryOrderQuantityPrecisionPerAssetResponseInner> {}
//#endregion
//#region src/rest-api/types/send-quote-request-response.d.ts
/**
 * Binance Convert REST API
 *
 * OpenAPI Specification for the Binance Convert REST API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 *
 * @export
 * @interface SendQuoteRequestResponse
 */
interface SendQuoteRequestResponse {
  /**
   *
   * @type {string}
   * @memberof SendQuoteRequestResponse
   */
  quoteId?: string;
  /**
   *
   * @type {string}
   * @memberof SendQuoteRequestResponse
   */
  ratio?: string;
  /**
   *
   * @type {string}
   * @memberof SendQuoteRequestResponse
   */
  inverseRatio?: string;
  /**
   *
   * @type {number | bigint}
   * @memberof SendQuoteRequestResponse
   */
  validTimestamp?: number | bigint;
  /**
   *
   * @type {string}
   * @memberof SendQuoteRequestResponse
   */
  toAmount?: string;
  /**
   *
   * @type {string}
   * @memberof SendQuoteRequestResponse
   */
  fromAmount?: string;
}
//#endregion
//#region src/rest-api/modules/market-data-api.d.ts
/**
 * MarketDataApi - interface
 * @interface MarketDataApi
 */
interface MarketDataApiInterface {
  /**
   * Query for all convertible token pairs and the tokens’ respective upper/lower limits
   *
   * User needs to supply either or both of the input parameter
   * If not defined for both fromAsset and toAsset, only partial token pairs will be returned
   *
   * Weight: 3000(IP)
   *
   * @summary List All Convert Pairs
   * @param {ListAllConvertPairsRequest} requestParameters Request parameters.
   *
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof MarketDataApiInterface
   */
  listAllConvertPairs(requestParameters?: ListAllConvertPairsRequest): Promise<RestApiResponse<ListAllConvertPairsResponse>>;
  /**
   * Query for supported asset’s precision information
   *
   * Weight: 100(IP)
   *
   * @summary Query order quantity precision per asset(USER_DATA)
   * @param {QueryOrderQuantityPrecisionPerAssetRequest} requestParameters Request parameters.
   *
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof MarketDataApiInterface
   */
  queryOrderQuantityPrecisionPerAsset(requestParameters?: QueryOrderQuantityPrecisionPerAssetRequest): Promise<RestApiResponse<QueryOrderQuantityPrecisionPerAssetResponse>>;
}
/**
 * Request parameters for listAllConvertPairs operation in MarketDataApi.
 * @interface ListAllConvertPairsRequest
 */
interface ListAllConvertPairsRequest {
  /**
   * User spends coin
   * @type {string}
   * @memberof MarketDataApiListAllConvertPairs
   */
  readonly fromAsset?: string;
  /**
   * User receives coin
   * @type {string}
   * @memberof MarketDataApiListAllConvertPairs
   */
  readonly toAsset?: string;
}
/**
 * Request parameters for queryOrderQuantityPrecisionPerAsset operation in MarketDataApi.
 * @interface QueryOrderQuantityPrecisionPerAssetRequest
 */
interface QueryOrderQuantityPrecisionPerAssetRequest {
  /**
   * The value cannot be greater than 60000
   * @type {number | bigint}
   * @memberof MarketDataApiQueryOrderQuantityPrecisionPerAsset
   */
  readonly recvWindow?: number | bigint;
}
/**
 * MarketDataApi - object-oriented interface
 * @class MarketDataApi
 */
declare class MarketDataApi implements MarketDataApiInterface {
  private readonly configuration;
  private localVarAxiosParamCreator;
  constructor(configuration: ConfigurationRestAPI);
  /**
   * Query for all convertible token pairs and the tokens’ respective upper/lower limits
   *
   * User needs to supply either or both of the input parameter
   * If not defined for both fromAsset and toAsset, only partial token pairs will be returned
   *
   * Weight: 3000(IP)
   *
   * @summary List All Convert Pairs
   * @param {ListAllConvertPairsRequest} requestParameters Request parameters.
   * @returns {Promise<RestApiResponse<ListAllConvertPairsResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof MarketDataApi
   * @see {@link https://developers.binance.com/docs/convert/market-data/ Binance API Documentation}
   */
  listAllConvertPairs(requestParameters?: ListAllConvertPairsRequest): Promise<RestApiResponse<ListAllConvertPairsResponse>>;
  /**
   * Query for supported asset’s precision information
   *
   * Weight: 100(IP)
   *
   * @summary Query order quantity precision per asset(USER_DATA)
   * @param {QueryOrderQuantityPrecisionPerAssetRequest} requestParameters Request parameters.
   * @returns {Promise<RestApiResponse<QueryOrderQuantityPrecisionPerAssetResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof MarketDataApi
   * @see {@link https://developers.binance.com/docs/convert/market-data/Query-order-quantity-precision-per-asset Binance API Documentation}
   */
  queryOrderQuantityPrecisionPerAsset(requestParameters?: QueryOrderQuantityPrecisionPerAssetRequest): Promise<RestApiResponse<QueryOrderQuantityPrecisionPerAssetResponse>>;
}
//#endregion
//#region src/rest-api/modules/trade-api.d.ts
/**
 * TradeApi - interface
 * @interface TradeApi
 */
interface TradeApiInterface {
  /**
   * Accept the offered quote by quote ID.
   *
   * Weight: 500(UID)
   *
   * @summary Accept Quote (TRADE)
   * @param {AcceptQuoteRequest} requestParameters Request parameters.
   *
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof TradeApiInterface
   */
  acceptQuote(requestParameters: AcceptQuoteRequest): Promise<RestApiResponse<AcceptQuoteResponse>>;
  /**
   * Enable users to cancel a limit order
   *
   * Weight: 200(UID)
   *
   * @summary Cancel limit order (USER_DATA)
   * @param {CancelLimitOrderRequest} requestParameters Request parameters.
   *
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof TradeApiInterface
   */
  cancelLimitOrder(requestParameters: CancelLimitOrderRequest): Promise<RestApiResponse<CancelLimitOrderResponse>>;
  /**
   * Get Convert Trade History
   *
   * The max interval between startTime and endTime is 30 days.
   *
   * Weight: 3000
   *
   * @summary Get Convert Trade History(USER_DATA)
   * @param {GetConvertTradeHistoryRequest} requestParameters Request parameters.
   *
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof TradeApiInterface
   */
  getConvertTradeHistory(requestParameters: GetConvertTradeHistoryRequest): Promise<RestApiResponse<GetConvertTradeHistoryResponse>>;
  /**
   * Query order status by order ID.
   *
   * Weight: 100(UID)
   *
   * @summary Order status(USER_DATA)
   * @param {OrderStatusRequest} requestParameters Request parameters.
   *
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof TradeApiInterface
   */
  orderStatus(requestParameters?: OrderStatusRequest): Promise<RestApiResponse<OrderStatusResponse>>;
  /**
   * Enable users to place a limit order
   *
   * `baseAsset` or `quoteAsset` can be determined via `exchangeInfo` endpoint.
   * Limit price is defined from `baseAsset` to `quoteAsset`.
   * Either `baseAmount` or `quoteAmount` is used.
   *
   * Weight: 500(UID)
   *
   * @summary Place limit order (USER_DATA)
   * @param {PlaceLimitOrderRequest} requestParameters Request parameters.
   *
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof TradeApiInterface
   */
  placeLimitOrder(requestParameters: PlaceLimitOrderRequest): Promise<RestApiResponse<PlaceLimitOrderResponse>>;
  /**
   * Request a quote for the requested token pairs
   *
   * Weight: 3000(UID)
   *
   * @summary Query limit open orders (USER_DATA)
   * @param {QueryLimitOpenOrdersRequest} requestParameters Request parameters.
   *
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof TradeApiInterface
   */
  queryLimitOpenOrders(requestParameters?: QueryLimitOpenOrdersRequest): Promise<RestApiResponse<QueryLimitOpenOrdersResponse>>;
  /**
   * Request a quote for the requested token pairs
   *
   * Either fromAmount or toAmount should be sent
   * `quoteId` will be returned only if you have enough funds to convert
   *
   * Weight: 200(UID)
   *
   * @summary Send Quote Request(USER_DATA)
   * @param {SendQuoteRequestRequest} requestParameters Request parameters.
   *
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof TradeApiInterface
   */
  sendQuoteRequest(requestParameters: SendQuoteRequestRequest): Promise<RestApiResponse<SendQuoteRequestResponse>>;
}
/**
 * Request parameters for acceptQuote operation in TradeApi.
 * @interface AcceptQuoteRequest
 */
interface AcceptQuoteRequest {
  /**
   *
   * @type {string}
   * @memberof TradeApiAcceptQuote
   */
  readonly quoteId: string;
  /**
   * The value cannot be greater than 60000
   * @type {number | bigint}
   * @memberof TradeApiAcceptQuote
   */
  readonly recvWindow?: number | bigint;
}
/**
 * Request parameters for cancelLimitOrder operation in TradeApi.
 * @interface CancelLimitOrderRequest
 */
interface CancelLimitOrderRequest {
  /**
   * The orderId from `placeOrder` api
   * @type {number | bigint}
   * @memberof TradeApiCancelLimitOrder
   */
  readonly orderId: number | bigint;
  /**
   * The value cannot be greater than 60000
   * @type {number | bigint}
   * @memberof TradeApiCancelLimitOrder
   */
  readonly recvWindow?: number | bigint;
}
/**
 * Request parameters for getConvertTradeHistory operation in TradeApi.
 * @interface GetConvertTradeHistoryRequest
 */
interface GetConvertTradeHistoryRequest {
  /**
   *
   * @type {number | bigint}
   * @memberof TradeApiGetConvertTradeHistory
   */
  readonly startTime: number | bigint;
  /**
   *
   * @type {number | bigint}
   * @memberof TradeApiGetConvertTradeHistory
   */
  readonly endTime: number | bigint;
  /**
   * Default 100, Max 1000
   * @type {number | bigint}
   * @memberof TradeApiGetConvertTradeHistory
   */
  readonly limit?: number | bigint;
  /**
   * The value cannot be greater than 60000
   * @type {number | bigint}
   * @memberof TradeApiGetConvertTradeHistory
   */
  readonly recvWindow?: number | bigint;
}
/**
 * Request parameters for orderStatus operation in TradeApi.
 * @interface OrderStatusRequest
 */
interface OrderStatusRequest {
  /**
   * Either orderId or quoteId is required
   * @type {string}
   * @memberof TradeApiOrderStatus
   */
  readonly orderId?: string;
  /**
   * Either orderId or quoteId is required
   * @type {string}
   * @memberof TradeApiOrderStatus
   */
  readonly quoteId?: string;
}
/**
 * Request parameters for placeLimitOrder operation in TradeApi.
 * @interface PlaceLimitOrderRequest
 */
interface PlaceLimitOrderRequest {
  /**
   * base asset (use the response `fromIsBase` from `GET /sapi/v1/convert/exchangeInfo` api to check which one is baseAsset )
   * @type {string}
   * @memberof TradeApiPlaceLimitOrder
   */
  readonly baseAsset: string;
  /**
   * quote asset
   * @type {string}
   * @memberof TradeApiPlaceLimitOrder
   */
  readonly quoteAsset: string;
  /**
   * Symbol limit price (from baseAsset to quoteAsset)
   * @type {number}
   * @memberof TradeApiPlaceLimitOrder
   */
  readonly limitPrice: number;
  /**
   * `BUY` or `SELL`
   * @type {string}
   * @memberof TradeApiPlaceLimitOrder
   */
  readonly side: string;
  /**
   * 1_D, 3_D, 7_D, 30_D  (D means day)
   * @type {string}
   * @memberof TradeApiPlaceLimitOrder
   */
  readonly expiredType: string;
  /**
   * Base asset amount.  (One of `baseAmount` or `quoteAmount` is required)
   * @type {number}
   * @memberof TradeApiPlaceLimitOrder
   */
  readonly baseAmount?: number;
  /**
   * Quote asset amount.  (One of `baseAmount` or `quoteAmount` is required)
   * @type {number}
   * @memberof TradeApiPlaceLimitOrder
   */
  readonly quoteAmount?: number;
  /**
   * It is to choose which wallet of assets. The wallet selection is `SPOT`, `FUNDING` and `EARN`. Combination of wallet is supported i.e. `SPOT_FUNDING`, `FUNDING_EARN`, `SPOT_FUNDING_EARN` or `SPOT_EARN`  Default is `SPOT`.
   * @type {string}
   * @memberof TradeApiPlaceLimitOrder
   */
  readonly walletType?: string;
  /**
   * The value cannot be greater than 60000
   * @type {number | bigint}
   * @memberof TradeApiPlaceLimitOrder
   */
  readonly recvWindow?: number | bigint;
}
/**
 * Request parameters for queryLimitOpenOrders operation in TradeApi.
 * @interface QueryLimitOpenOrdersRequest
 */
interface QueryLimitOpenOrdersRequest {
  /**
   * The value cannot be greater than 60000
   * @type {number | bigint}
   * @memberof TradeApiQueryLimitOpenOrders
   */
  readonly recvWindow?: number | bigint;
}
/**
 * Request parameters for sendQuoteRequest operation in TradeApi.
 * @interface SendQuoteRequestRequest
 */
interface SendQuoteRequestRequest {
  /**
   *
   * @type {string}
   * @memberof TradeApiSendQuoteRequest
   */
  readonly fromAsset: string;
  /**
   *
   * @type {string}
   * @memberof TradeApiSendQuoteRequest
   */
  readonly toAsset: string;
  /**
   * When specified, it is the amount you will be debited after the conversion
   * @type {number}
   * @memberof TradeApiSendQuoteRequest
   */
  readonly fromAmount?: number;
  /**
   * When specified, it is the amount you will be credited after the conversion
   * @type {number}
   * @memberof TradeApiSendQuoteRequest
   */
  readonly toAmount?: number;
  /**
   * It is to choose which wallet of assets. The wallet selection is `SPOT`, `FUNDING` and `EARN`. Combination of wallet is supported i.e. `SPOT_FUNDING`, `FUNDING_EARN`, `SPOT_FUNDING_EARN` or `SPOT_EARN`  Default is `SPOT`.
   * @type {string}
   * @memberof TradeApiSendQuoteRequest
   */
  readonly walletType?: string;
  /**
   * 10s, 30s, 1m, default 10s
   * @type {string}
   * @memberof TradeApiSendQuoteRequest
   */
  readonly validTime?: string;
  /**
   * The value cannot be greater than 60000
   * @type {number | bigint}
   * @memberof TradeApiSendQuoteRequest
   */
  readonly recvWindow?: number | bigint;
}
/**
 * TradeApi - object-oriented interface
 * @class TradeApi
 */
declare class TradeApi implements TradeApiInterface {
  private readonly configuration;
  private localVarAxiosParamCreator;
  constructor(configuration: ConfigurationRestAPI);
  /**
   * Accept the offered quote by quote ID.
   *
   * Weight: 500(UID)
   *
   * @summary Accept Quote (TRADE)
   * @param {AcceptQuoteRequest} requestParameters Request parameters.
   * @returns {Promise<RestApiResponse<AcceptQuoteResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof TradeApi
   * @see {@link https://developers.binance.com/docs/convert/trade/Accept-Quote Binance API Documentation}
   */
  acceptQuote(requestParameters: AcceptQuoteRequest): Promise<RestApiResponse<AcceptQuoteResponse>>;
  /**
   * Enable users to cancel a limit order
   *
   * Weight: 200(UID)
   *
   * @summary Cancel limit order (USER_DATA)
   * @param {CancelLimitOrderRequest} requestParameters Request parameters.
   * @returns {Promise<RestApiResponse<CancelLimitOrderResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof TradeApi
   * @see {@link https://developers.binance.com/docs/convert/trade/Cancel-Order Binance API Documentation}
   */
  cancelLimitOrder(requestParameters: CancelLimitOrderRequest): Promise<RestApiResponse<CancelLimitOrderResponse>>;
  /**
   * Get Convert Trade History
   *
   * The max interval between startTime and endTime is 30 days.
   *
   * Weight: 3000
   *
   * @summary Get Convert Trade History(USER_DATA)
   * @param {GetConvertTradeHistoryRequest} requestParameters Request parameters.
   * @returns {Promise<RestApiResponse<GetConvertTradeHistoryResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof TradeApi
   * @see {@link https://developers.binance.com/docs/convert/trade/Get-Convert-Trade-History Binance API Documentation}
   */
  getConvertTradeHistory(requestParameters: GetConvertTradeHistoryRequest): Promise<RestApiResponse<GetConvertTradeHistoryResponse>>;
  /**
   * Query order status by order ID.
   *
   * Weight: 100(UID)
   *
   * @summary Order status(USER_DATA)
   * @param {OrderStatusRequest} requestParameters Request parameters.
   * @returns {Promise<RestApiResponse<OrderStatusResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof TradeApi
   * @see {@link https://developers.binance.com/docs/convert/trade/Order-Status Binance API Documentation}
   */
  orderStatus(requestParameters?: OrderStatusRequest): Promise<RestApiResponse<OrderStatusResponse>>;
  /**
   * Enable users to place a limit order
   *
   * `baseAsset` or `quoteAsset` can be determined via `exchangeInfo` endpoint.
   * Limit price is defined from `baseAsset` to `quoteAsset`.
   * Either `baseAmount` or `quoteAmount` is used.
   *
   * Weight: 500(UID)
   *
   * @summary Place limit order (USER_DATA)
   * @param {PlaceLimitOrderRequest} requestParameters Request parameters.
   * @returns {Promise<RestApiResponse<PlaceLimitOrderResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof TradeApi
   * @see {@link https://developers.binance.com/docs/convert/trade/Place-Order Binance API Documentation}
   */
  placeLimitOrder(requestParameters: PlaceLimitOrderRequest): Promise<RestApiResponse<PlaceLimitOrderResponse>>;
  /**
   * Request a quote for the requested token pairs
   *
   * Weight: 3000(UID)
   *
   * @summary Query limit open orders (USER_DATA)
   * @param {QueryLimitOpenOrdersRequest} requestParameters Request parameters.
   * @returns {Promise<RestApiResponse<QueryLimitOpenOrdersResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof TradeApi
   * @see {@link https://developers.binance.com/docs/convert/trade/Query-Order Binance API Documentation}
   */
  queryLimitOpenOrders(requestParameters?: QueryLimitOpenOrdersRequest): Promise<RestApiResponse<QueryLimitOpenOrdersResponse>>;
  /**
   * Request a quote for the requested token pairs
   *
   * Either fromAmount or toAmount should be sent
   * `quoteId` will be returned only if you have enough funds to convert
   *
   * Weight: 200(UID)
   *
   * @summary Send Quote Request(USER_DATA)
   * @param {SendQuoteRequestRequest} requestParameters Request parameters.
   * @returns {Promise<RestApiResponse<SendQuoteRequestResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @memberof TradeApi
   * @see {@link https://developers.binance.com/docs/convert/trade/Send-quote-request Binance API Documentation}
   */
  sendQuoteRequest(requestParameters: SendQuoteRequestRequest): Promise<RestApiResponse<SendQuoteRequestResponse>>;
}
//#endregion
//#region src/rest-api/rest-api.d.ts
declare class RestAPI {
  private configuration;
  private marketDataApi;
  private tradeApi;
  constructor(configuration: ConfigurationRestAPI);
  /**
   * Generic function to send a request.
   * @param endpoint - The API endpoint to call.
   * @param method - HTTP method to use (GET, POST, DELETE, etc.).
   * @param queryParams - Query parameters for the request.
   * @param bodyParams - Body parameters for the request.
   *
   * @returns A promise resolving to the response data object.
   */
  sendRequest<T>(endpoint: string, method: 'GET' | 'POST' | 'DELETE' | 'PUT' | 'PATCH', queryParams?: Record<string, unknown>, bodyParams?: Record<string, unknown>): Promise<RestApiResponse<T>>;
  /**
   * Generic function to send a signed request.
   * @param endpoint - The API endpoint to call.
   * @param method - HTTP method to use (GET, POST, DELETE, etc.).
   * @param queryParams - Query parameters for the request.
   * @param bodyParams - Body parameters for the request.
   *
   * @returns A promise resolving to the response data object.
   */
  sendSignedRequest<T>(endpoint: string, method: 'GET' | 'POST' | 'DELETE' | 'PUT' | 'PATCH', queryParams?: Record<string, unknown>, bodyParams?: Record<string, unknown>): Promise<RestApiResponse<T>>;
  /**
   * Query for all convertible token pairs and the tokens’ respective upper/lower limits
   *
   * User needs to supply either or both of the input parameter
   * If not defined for both fromAsset and toAsset, only partial token pairs will be returned
   *
   * Weight: 3000(IP)
   *
   * @summary List All Convert Pairs
   * @param {ListAllConvertPairsRequest} requestParameters Request parameters.
   *
   * @returns {Promise<RestApiResponse<ListAllConvertPairsResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @see {@link https://developers.binance.com/docs/convert/market-data/ Binance API Documentation}
   */
  listAllConvertPairs(requestParameters?: ListAllConvertPairsRequest): Promise<RestApiResponse<ListAllConvertPairsResponse>>;
  /**
   * Query for supported asset’s precision information
   *
   * Weight: 100(IP)
   *
   * @summary Query order quantity precision per asset(USER_DATA)
   * @param {QueryOrderQuantityPrecisionPerAssetRequest} requestParameters Request parameters.
   *
   * @returns {Promise<RestApiResponse<QueryOrderQuantityPrecisionPerAssetResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @see {@link https://developers.binance.com/docs/convert/market-data/Query-order-quantity-precision-per-asset Binance API Documentation}
   */
  queryOrderQuantityPrecisionPerAsset(requestParameters?: QueryOrderQuantityPrecisionPerAssetRequest): Promise<RestApiResponse<QueryOrderQuantityPrecisionPerAssetResponse>>;
  /**
   * Accept the offered quote by quote ID.
   *
   * Weight: 500(UID)
   *
   * @summary Accept Quote (TRADE)
   * @param {AcceptQuoteRequest} requestParameters Request parameters.
   *
   * @returns {Promise<RestApiResponse<AcceptQuoteResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @see {@link https://developers.binance.com/docs/convert/trade/Accept-Quote Binance API Documentation}
   */
  acceptQuote(requestParameters: AcceptQuoteRequest): Promise<RestApiResponse<AcceptQuoteResponse>>;
  /**
   * Enable users to cancel a limit order
   *
   * Weight: 200(UID)
   *
   * @summary Cancel limit order (USER_DATA)
   * @param {CancelLimitOrderRequest} requestParameters Request parameters.
   *
   * @returns {Promise<RestApiResponse<CancelLimitOrderResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @see {@link https://developers.binance.com/docs/convert/trade/Cancel-Order Binance API Documentation}
   */
  cancelLimitOrder(requestParameters: CancelLimitOrderRequest): Promise<RestApiResponse<CancelLimitOrderResponse>>;
  /**
   * Get Convert Trade History
   *
   * The max interval between startTime and endTime is 30 days.
   *
   * Weight: 3000
   *
   * @summary Get Convert Trade History(USER_DATA)
   * @param {GetConvertTradeHistoryRequest} requestParameters Request parameters.
   *
   * @returns {Promise<RestApiResponse<GetConvertTradeHistoryResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @see {@link https://developers.binance.com/docs/convert/trade/Get-Convert-Trade-History Binance API Documentation}
   */
  getConvertTradeHistory(requestParameters: GetConvertTradeHistoryRequest): Promise<RestApiResponse<GetConvertTradeHistoryResponse>>;
  /**
   * Query order status by order ID.
   *
   * Weight: 100(UID)
   *
   * @summary Order status(USER_DATA)
   * @param {OrderStatusRequest} requestParameters Request parameters.
   *
   * @returns {Promise<RestApiResponse<OrderStatusResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @see {@link https://developers.binance.com/docs/convert/trade/Order-Status Binance API Documentation}
   */
  orderStatus(requestParameters?: OrderStatusRequest): Promise<RestApiResponse<OrderStatusResponse>>;
  /**
   * Enable users to place a limit order
   *
   * `baseAsset` or `quoteAsset` can be determined via `exchangeInfo` endpoint.
   * Limit price is defined from `baseAsset` to `quoteAsset`.
   * Either `baseAmount` or `quoteAmount` is used.
   *
   * Weight: 500(UID)
   *
   * @summary Place limit order (USER_DATA)
   * @param {PlaceLimitOrderRequest} requestParameters Request parameters.
   *
   * @returns {Promise<RestApiResponse<PlaceLimitOrderResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @see {@link https://developers.binance.com/docs/convert/trade/Place-Order Binance API Documentation}
   */
  placeLimitOrder(requestParameters: PlaceLimitOrderRequest): Promise<RestApiResponse<PlaceLimitOrderResponse>>;
  /**
   * Request a quote for the requested token pairs
   *
   * Weight: 3000(UID)
   *
   * @summary Query limit open orders (USER_DATA)
   * @param {QueryLimitOpenOrdersRequest} requestParameters Request parameters.
   *
   * @returns {Promise<RestApiResponse<QueryLimitOpenOrdersResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @see {@link https://developers.binance.com/docs/convert/trade/Query-Order Binance API Documentation}
   */
  queryLimitOpenOrders(requestParameters?: QueryLimitOpenOrdersRequest): Promise<RestApiResponse<QueryLimitOpenOrdersResponse>>;
  /**
   * Request a quote for the requested token pairs
   *
   * Either fromAmount or toAmount should be sent
   * `quoteId` will be returned only if you have enough funds to convert
   *
   * Weight: 200(UID)
   *
   * @summary Send Quote Request(USER_DATA)
   * @param {SendQuoteRequestRequest} requestParameters Request parameters.
   *
   * @returns {Promise<RestApiResponse<SendQuoteRequestResponse>>}
   * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}
   * @see {@link https://developers.binance.com/docs/convert/trade/Send-quote-request Binance API Documentation}
   */
  sendQuoteRequest(requestParameters: SendQuoteRequestRequest): Promise<RestApiResponse<SendQuoteRequestResponse>>;
}
declare namespace index_d_exports {
  export { AcceptQuoteRequest, AcceptQuoteResponse, CancelLimitOrderRequest, CancelLimitOrderResponse, GetConvertTradeHistoryRequest, GetConvertTradeHistoryResponse, GetConvertTradeHistoryResponseListInner, ListAllConvertPairsRequest, ListAllConvertPairsResponse, ListAllConvertPairsResponseInner, MarketDataApi, MarketDataApiInterface, OrderStatusRequest, OrderStatusResponse, PlaceLimitOrderRequest, PlaceLimitOrderResponse, QueryLimitOpenOrdersRequest, QueryLimitOpenOrdersResponse, QueryLimitOpenOrdersResponseListInner, QueryOrderQuantityPrecisionPerAssetRequest, QueryOrderQuantityPrecisionPerAssetResponse, QueryOrderQuantityPrecisionPerAssetResponseInner, RestAPI, SendQuoteRequestRequest, SendQuoteRequestResponse, TradeApi, TradeApiInterface };
}
//#endregion
//#region src/convert.d.ts
interface ConfigurationConvert {
  configurationRestAPI?: ConfigurationRestAPI;
}
declare class Convert {
  restAPI: RestAPI;
  constructor(config: ConfigurationConvert);
}
//#endregion
export { BadRequestError, CONVERT_REST_API_PROD_URL, type ConfigurationConvert, ConnectorClientError, Convert, index_d_exports as ConvertRestAPI, ForbiddenError, NetworkError, NotFoundError, RateLimitBanError, RequiredError, ServerError, TooManyRequestsError, UnauthorizedError };
//# sourceMappingURL=index.d.mts.map