import { Transport } from '../../../internal/interfaces/transport'; import { UtaApiBase, UtaRecord, UtaRequestData, UtaRestResponse } from '../common'; export type UtaFlexibleNumber = string | number; export type UtaObjectOrList = UtaRecord | UtaRecord[]; export type GetInterestHistoryReq = UtaRequestData; export type GetBorrowingRatesAndLimitsReq = UtaRequestData; export type SetAccountModeReq = UtaRequestData; export type GetOESCustodyQuotaReq = UtaRequestData; export type SetSubAccountTransferPermissionReq = UtaRequestData; export type GetLeverageReq = UtaRequestData; export type ModifyMarginCrossLeverageReq = UtaRequestData; export type ModifyLeverageReq = UtaRequestData; export type AddSubAccountApiReq = UtaRequestData; export type GetFeeRateReq = UtaRequestData; export type ModifySubAccountApiReq = UtaRequestData; export type DeleteSubAccountApiReq = UtaRequestData; export type GetSubAccountApiListReq = UtaRequestData; export type AddSubAccountReq = UtaRequestData; export type GetAccountLedgerReq = UtaRequestData; export type GetClassicAccountBalanceReq = UtaRequestData; export type GetDepositAddressReq = UtaRequestData; export type GetDepositHistoryReq = UtaRequestData; export type GetSubAccountBalanceReq = UtaRequestData; export type GetTransferQuotaReq = UtaRequestData; export type GetWithdrawalQuotasReq = UtaRequestData; export type GetWithdrawalHistoryReq = UtaRequestData; export type GetSubAccountListReq = UtaRequestData; export type GetRateLimitReq = UtaRequestData; export type SetRateLimitReq = UtaRequestData; export type FlexTransferReq = UtaRequestData; export type SetKcsFeeDeductionReq = UtaRequestData; export type CancelWithdrawalReq = UtaRequestData; export type WithdrawalV3Req = UtaRequestData; export interface GetLeverageData extends UtaRecord { symbol?: string; currency?: string; leverage?: UtaFlexibleNumber; marginMode?: string; } export interface GetAccountLedgerItem extends UtaRecord { id?: string; currency?: string; amount?: string; balance?: string; businessType?: string; direction?: string; createdAt?: UtaFlexibleNumber; } export interface GetDepositAddressData extends UtaRecord { address?: string; memo?: string; chain?: string; currency?: string; chainName?: string; toAccountType?: string; } export interface GetSubAccountListItem extends UtaRecord { userId?: string; uid?: UtaFlexibleNumber; subName?: string; status?: UtaFlexibleNumber; type?: UtaFlexibleNumber; } export type GetInterestHistoryResp = UtaRestResponse; export type GetBorrowingRatesAndLimitsResp = UtaRestResponse; export type GetAccountModeResp = UtaRestResponse; export type SetAccountModeResp = UtaRestResponse; export type GetOESCustodyQuotaResp = UtaRestResponse; export type SetSubAccountTransferPermissionResp = UtaRestResponse; export type GetAccountResp = UtaRestResponse; export type GetLeverageResp = UtaRestResponse; export type ModifyMarginCrossLeverageResp = UtaRestResponse; export type ModifyLeverageResp = UtaRestResponse; export type GetAccountOverviewResp = UtaRestResponse; export type GetApikeyInfoResp = UtaRestResponse; export type AddSubAccountApiResp = UtaRestResponse; export type GetFeeRateResp = UtaRestResponse; export type ModifySubAccountApiResp = UtaRestResponse; export type DeleteSubAccountApiResp = UtaRestResponse; export type GetSubAccountApiListResp = UtaRestResponse; export type AddSubAccountResp = UtaRestResponse; export type GetAccountLedgerResp = UtaRestResponse; export type GetClassicAccountBalanceResp = UtaRestResponse; export type GetDepositAddressResp = UtaRestResponse; export type GetDepositHistoryResp = UtaRestResponse; export type GetSubAccountBalanceResp = UtaRestResponse; export type GetTransferQuotaResp = UtaRestResponse; export type GetWithdrawalQuotasResp = UtaRestResponse; export type GetWithdrawalHistoryResp = UtaRestResponse; export type GetAllRateLimitResp = UtaRestResponse; export type GetRateLimitCapResp = UtaRestResponse; export type GetSubAccountListResp = UtaRestResponse<{ currentPage?: UtaFlexibleNumber; pageSize?: UtaFlexibleNumber; totalNum?: UtaFlexibleNumber; totalPage?: UtaFlexibleNumber; items?: GetSubAccountListItem[]; }>; export type GetRateLimitResp = UtaRestResponse; export type SetRateLimitResp = UtaRestResponse; export type FlexTransferResp = UtaRestResponse; export type SetKcsFeeDeductionResp = UtaRestResponse; export type CancelWithdrawalResp = UtaRestResponse; export type WithdrawalV3Resp = UtaRestResponse; /** UTA account, asset, transfer, rate-limit, and sub-account REST APIs. */ export interface AccountAPI { getInterestHistory(req: GetInterestHistoryReq): Promise; getBorrowingRatesAndLimits(req: GetBorrowingRatesAndLimitsReq): Promise; getAccountMode(): Promise; setAccountMode(req: SetAccountModeReq): Promise; getOESCustodyQuota(req: GetOESCustodyQuotaReq): Promise; setSubAccountTransferPermission(req: SetSubAccountTransferPermissionReq): Promise; getAccount(): Promise; getLeverage(req: GetLeverageReq): Promise; modifyMarginCrossLeverage(req: ModifyMarginCrossLeverageReq): Promise; modifyLeverage(req: ModifyLeverageReq): Promise; getAccountOverview(): Promise; getApikeyInfo(): Promise; addSubAccountApi(req: AddSubAccountApiReq): Promise; getFeeRate(req: GetFeeRateReq): Promise; modifySubAccountApi(req: ModifySubAccountApiReq): Promise; deleteSubAccountApi(req: DeleteSubAccountApiReq): Promise; getSubAccountApiList(req: GetSubAccountApiListReq): Promise; addSubAccount(req: AddSubAccountReq): Promise; getAccountLedger(req: GetAccountLedgerReq): Promise; getClassicAccountBalance(req: GetClassicAccountBalanceReq): Promise; getDepositAddress(req: GetDepositAddressReq): Promise; getDepositHistory(req: GetDepositHistoryReq): Promise; getSubAccountBalance(req: GetSubAccountBalanceReq): Promise; getTransferQuota(req: GetTransferQuotaReq): Promise; getWithdrawalQuotas(req: GetWithdrawalQuotasReq): Promise; getWithdrawalHistory(req: GetWithdrawalHistoryReq): Promise; getAllRateLimit(): Promise; getRateLimitCap(): Promise; getSubAccountList(req: GetSubAccountListReq): Promise; getRateLimit(req: GetRateLimitReq): Promise; setRateLimit(req: SetRateLimitReq): Promise; flexTransfer(req: FlexTransferReq): Promise; setKcsFeeDeduction(req: SetKcsFeeDeductionReq): Promise; cancelWithdrawal(req: CancelWithdrawalReq): Promise; withdrawalV3(req: WithdrawalV3Req): Promise; } export declare class AccountAPIImpl extends UtaApiBase implements AccountAPI { constructor(transport: Transport); getInterestHistory(req: GetInterestHistoryReq): Promise>; getBorrowingRatesAndLimits(req: GetBorrowingRatesAndLimitsReq): Promise>; getAccountMode(): Promise>; setAccountMode(req: SetAccountModeReq): Promise>; getOESCustodyQuota(req: GetOESCustodyQuotaReq): Promise>; setSubAccountTransferPermission(req: SetSubAccountTransferPermissionReq): Promise>; getAccount(): Promise>; getLeverage(req: GetLeverageReq): Promise>; modifyMarginCrossLeverage(req: ModifyMarginCrossLeverageReq): Promise>; modifyLeverage(req: ModifyLeverageReq): Promise>; getAccountOverview(): Promise>; getApikeyInfo(): Promise>; addSubAccountApi(req: AddSubAccountApiReq): Promise>; getFeeRate(req: GetFeeRateReq): Promise>; modifySubAccountApi(req: ModifySubAccountApiReq): Promise>; deleteSubAccountApi(req: DeleteSubAccountApiReq): Promise>; getSubAccountApiList(req: GetSubAccountApiListReq): Promise>; addSubAccount(req: AddSubAccountReq): Promise>; getAccountLedger(req: GetAccountLedgerReq): Promise>; getClassicAccountBalance(req: GetClassicAccountBalanceReq): Promise>; getDepositAddress(req: GetDepositAddressReq): Promise>; getDepositHistory(req: GetDepositHistoryReq): Promise>; getSubAccountBalance(req: GetSubAccountBalanceReq): Promise>; getTransferQuota(req: GetTransferQuotaReq): Promise>; getWithdrawalQuotas(req: GetWithdrawalQuotasReq): Promise>; getWithdrawalHistory(req: GetWithdrawalHistoryReq): Promise>; getAllRateLimit(): Promise>; getRateLimitCap(): Promise>; getSubAccountList(req: GetSubAccountListReq): Promise>; getRateLimit(req: GetRateLimitReq): Promise>; setRateLimit(req: SetRateLimitReq): Promise>; flexTransfer(req: FlexTransferReq): Promise>; setKcsFeeDeduction(req: SetKcsFeeDeductionReq): Promise>; cancelWithdrawal(req: CancelWithdrawalReq): Promise>; withdrawalV3(req: WithdrawalV3Req): Promise>; }