import { Transaction } from "@mysten/sui/transactions"; import type { TradingRuntime } from "./trading.js"; export declare function queryPoolMidPrice(runtime: TradingRuntime, poolKey: string): Promise; export interface LimitOrderOperationInput { poolKey: string; clientOrderId: string; price: number; quantity: number; isBid: boolean; orderType: number; selfMatchingOption: number; payWithDeep: boolean; expiration?: number; } export declare function buildLimitOrderTransaction(runtime: TradingRuntime, input: LimitOrderOperationInput): Transaction; export interface MarketOrderOperationInput { poolKey: string; clientOrderId: string; quantity: number; isBid: boolean; selfMatchingOption: number; payWithDeep: boolean; } export declare function buildMarketOrderTransaction(runtime: TradingRuntime, input: MarketOrderOperationInput): Transaction; export interface MarginLimitOrderOperationInput extends LimitOrderOperationInput { reduceOnly: boolean; collateralBaseAmount?: number; collateralQuoteAmount?: number; feeBufferBaseAmount?: number; feeBufferQuoteAmount?: number; feeBufferDeepAmount?: number; borrowBaseAmount?: number; borrowQuoteAmount?: number; } export declare function buildMarginLimitOrderTransaction(runtime: TradingRuntime, input: MarginLimitOrderOperationInput): Transaction; export interface MarginSpotOrderOperationInput extends MarketOrderOperationInput { reduceOnly: boolean; collateralBaseAmount?: number; collateralQuoteAmount?: number; feeBufferBaseAmount?: number; feeBufferQuoteAmount?: number; feeBufferDeepAmount?: number; borrowBaseAmount?: number; borrowQuoteAmount?: number; } export declare function buildMarginSpotOrderTransaction(runtime: TradingRuntime, input: MarginSpotOrderOperationInput): Transaction; export interface MarginDepositOperationInput { poolKey: string; coin: string; amount: number; } export declare function buildMarginDepositTransaction(runtime: TradingRuntime, input: MarginDepositOperationInput): Transaction; export declare function buildMarginDepositTransactionWithNewManager(runtime: TradingRuntime, input: MarginDepositOperationInput): Transaction; export declare function buildMarginLimitOrderTransactionWithNewManager(runtime: TradingRuntime, input: MarginLimitOrderOperationInput): Transaction; export declare function buildMarginSpotOrderTransactionWithNewManager(runtime: TradingRuntime, input: MarginSpotOrderOperationInput): Transaction; export declare function queryMarginManagerIdsForOwner(runtime: TradingRuntime, owner?: string): Promise; export declare function queryBalanceManagerIdsForOwner(runtime: TradingRuntime, owner?: string): Promise; export declare function findMarginManagerIdForPool(runtime: TradingRuntime, poolKey: string, owner?: string): Promise; export declare function isMarginManagerCompatibleWithPool(runtime: TradingRuntime, poolKey: string, marginManagerId: string, owner?: string): Promise; export interface CancelOrderOperationInput { poolKey: string; orderId: string; } export declare function buildCancelOrderTransaction(runtime: TradingRuntime, input: CancelOrderOperationInput): Transaction; export interface SwapOperationInput { poolKey: string; amount: number; minOut: number; deepAmount: number; } export declare function buildSwapBaseForQuoteTransaction(runtime: TradingRuntime, input: SwapOperationInput): Transaction; export declare function buildSwapQuoteForBaseTransaction(runtime: TradingRuntime, input: SwapOperationInput): Transaction; export declare function buildCreateManagerTransaction(runtime: TradingRuntime): Transaction; export interface DepositOperationInput { coin: string; amount: number; } export declare function buildDepositTransaction(runtime: TradingRuntime, input: DepositOperationInput): Transaction; export interface WithdrawOperationInput { coin: string; amount: number; recipient: string; } export declare function buildWithdrawTransaction(runtime: TradingRuntime, input: WithdrawOperationInput): Transaction; export interface MarginOpenOrderSummary { orderId: string; clientOrderId: string; quantityRaw: string; filledQuantityRaw: string; remainingQuantityRaw: string; status: number; expiresAt: string; } export interface MarginPositionSummary { managerState: Record; openOrderCount: number; openOrders: MarginOpenOrderSummary[]; } export interface MarginStateAmounts { baseAssetRaw: bigint; quoteAssetRaw: bigint; baseDebtRaw: bigint; quoteDebtRaw: bigint; baseAsset: number; quoteAsset: number; baseDebt: number; quoteDebt: number; } export interface PoolBookParamsSummary { tickSizeRaw: string; lotSizeRaw: string; minSizeRaw: string; lotSize: number; minSize: number; } export declare function queryPoolBookParams(runtime: TradingRuntime, poolKey: string): Promise; export declare function getMarginStateAmounts(runtime: TradingRuntime, poolKey: string, managerState: Record): MarginStateAmounts; export interface MarginCloseTransactionInput { poolKey: string; clientOrderId: string; quantity?: number; isBid?: boolean; reduceOnly: boolean; selfMatchingOption: number; payWithDeep: boolean; repayBaseDebt: boolean; repayQuoteDebt: boolean; feeBufferBaseAmount?: number; feeBufferQuoteAmount?: number; feeBufferDeepAmount?: number; } export declare function buildMarginCloseTransaction(runtime: TradingRuntime, input: MarginCloseTransactionInput): Transaction; export interface MarginWithdrawTransactionInput { baseAmount?: number; quoteAmount?: number; } export declare function buildMarginWithdrawTransaction(runtime: TradingRuntime, input: MarginWithdrawTransactionInput): Transaction; export declare function queryMarginPosition(runtime: TradingRuntime): Promise; export declare function queryManagerBalance(runtime: TradingRuntime, coin: string): Promise<{ coinType: string; balance: number; balanceRaw: string; }>;