import type { TransactionObjectArgument } from '@onelabs/sui/transactions'; export interface BalanceManager { address: string; tradeCap?: string; depositCap?: string; withdrawCap?: string; } export interface Coin { address: string; type: string; scalar: number; } export interface Pool { address: string; baseCoin: string; quoteCoin: string; } export declare enum OrderType { NO_RESTRICTION = 0, IMMEDIATE_OR_CANCEL = 1, FILL_OR_KILL = 2, POST_ONLY = 3 } export declare enum SelfMatchingOptions { SELF_MATCHING_ALLOWED = 0, CANCEL_TAKER = 1, CANCEL_MAKER = 2 } export interface PlaceLimitOrderParams { poolKey: string; balanceManagerKey: string; clientOrderId: string; price: number; quantity: number; isBid: boolean; expiration?: number | bigint; orderType?: OrderType; selfMatchingOption?: SelfMatchingOptions; payWithDeep?: boolean; } export interface PlaceMarketOrderParams { poolKey: string; balanceManagerKey: string; clientOrderId: string; quantity: number; isBid: boolean; selfMatchingOption?: SelfMatchingOptions; payWithDeep?: boolean; } export interface ProposalParams { poolKey: string; balanceManagerKey: string; takerFee: number; makerFee: number; stakeRequired: number; } export interface SwapParams { poolKey: string; amount: number; deepAmount: number; minOut: number; deepCoin?: TransactionObjectArgument; baseCoin?: TransactionObjectArgument; quoteCoin?: TransactionObjectArgument; } export interface CreatePoolAdminParams { baseCoinKey: string; quoteCoinKey: string; tickSize: number; lotSize: number; minSize: number; whitelisted: boolean; stablePool: boolean; } export interface CreatePermissionlessPoolParams { baseCoinKey: string; quoteCoinKey: string; tickSize: number; lotSize: number; minSize: number; deepCoin?: TransactionObjectArgument; } export interface Config { DEEPBOOK_PACKAGE_ID: string; REGISTRY_ID: string; DEEP_TREASURY_ID: string; } export type Environment = 'mainnet' | 'testnet';