import { Channel, ChannelEventSource } from "../../internal"; import { PositionDraft, PositionDraftConstructorData } from "../position/PositionDraft"; import Big from "big.js"; import { ContractName } from "../../contracts"; import { Liquidity } from "../liquidity/Liquidity"; import { LiquidityDraft } from "../liquidity/LiquidityDraft"; import type { PerpetualProtocol } from "../PerpetualProtocol"; import { Position } from "../position/Position"; interface DraftPositionInput extends Omit { tickerSymbol: string; } declare type ClearingHouseEventName = "updated" | "updateError"; declare class ClearingHouse extends Channel { protected readonly _perp: PerpetualProtocol; private _cache; constructor(_perp: PerpetualProtocol); createPositionDraft({ tickerSymbol, amountInput, isAmountInputBase, side }: DraftPositionInput): PositionDraft; createLiquidityDraft({ tickerSymbol, lowerTick, upperTick, rawQuoteAmount, rawBaseAmount, }: { tickerSymbol: string; lowerTick: number; upperTick: number; rawQuoteAmount?: Big; rawBaseAmount?: Big; }): LiquidityDraft; openPosition(positionDraft: PositionDraft, slippage: Big, referralCode?: string): Promise<{ transaction: import("ethers").ContractTransaction; metadata: { contractName: ContractName; contractFunctionName: keyof import("ethers").Contract; args: unknown[]; txPayload: { from?: string | undefined; to?: string | undefined; inputData?: string | undefined; } | { from: string; to: string; value: import("ethers").BigNumber | undefined; inputData: string; }; }; gasLimit: string; }>; closePosition(position: Position, slippage: Big, referralCode?: string): Promise<{ transaction: import("ethers").ContractTransaction; metadata: { contractName: ContractName; contractFunctionName: keyof import("ethers").Contract; args: unknown[]; txPayload: { from?: string | undefined; to?: string | undefined; inputData?: string | undefined; } | { from: string; to: string; value: import("ethers").BigNumber | undefined; inputData: string; }; }; gasLimit: string; }>; addLiquidity(liquidityDraft: LiquidityDraft, slippage: Big): Promise<{ transaction: import("ethers").ContractTransaction; metadata: { contractName: ContractName; contractFunctionName: keyof import("ethers").Contract; args: unknown[]; txPayload: { from?: string | undefined; to?: string | undefined; inputData?: string | undefined; } | { from: string; to: string; value: import("ethers").BigNumber | undefined; inputData: string; }; }; gasLimit: string; }>; removeLiquidity(liquidity: Liquidity, ratio: Big, slippage: Big): Promise<{ transaction: import("ethers").ContractTransaction; metadata: { contractName: ContractName; contractFunctionName: keyof import("ethers").Contract; args: unknown[]; txPayload: { from?: string | undefined; to?: string | undefined; inputData?: string | undefined; } | { from: string; to: string; value: import("ethers").BigNumber | undefined; inputData: string; }; }; gasLimit: string; }>; quitMarket(tickerSymbol: string): Promise<{ transaction: import("ethers").ContractTransaction; metadata: { contractName: ContractName; contractFunctionName: keyof import("ethers").Contract; args: unknown[]; txPayload: { from?: string | undefined; to?: string | undefined; inputData?: string | undefined; } | { from: string; to: string; value: import("ethers").BigNumber | undefined; inputData: string; }; }; gasLimit: string; }>; protected _getEventSourceMap(): { updated: ChannelEventSource; }; private _fetchUpdateData; private _createFetchAndEmitAccountValueUpdated; getAccountValue({ cache }?: { cache?: boolean | undefined; }): Promise; private _fetch; } export { ClearingHouse };