///
import { Keypair, PublicKey, Signer, TransactionInstruction } from '@solana/web3.js';
import { BN } from '@coral-xyz/anchor';
import { OpenBookV2Client, OpenOrdersAccount, PlaceOrderType, SelfTradeBehavior as SelfTradeBehaviorType, Side, Order, OpenOrdersIndexer, Market } from '..';
export interface OrderToPlace {
side: Side;
price: number;
size: number;
quoteLimit?: number;
clientOrderId?: number;
orderType?: PlaceOrderType;
expiryTimestamp?: number;
selfTradeBehavior?: SelfTradeBehaviorType;
matchLoopLimit?: number;
}
export declare class OpenOrders {
pubkey: PublicKey;
account: OpenOrdersAccount;
market: Market;
delegate: Keypair | undefined;
constructor(pubkey: PublicKey, account: OpenOrdersAccount, market: Market);
static load(pubkey: PublicKey, market?: Market, client?: OpenBookV2Client): Promise;
/**
* Try loading the OpenOrders account associated with a Market
* @param market
* @param owner optional if configured already on the Market's client
* @param indexer optional, pass in to speed up fetch
* @returns null if the user does not have an OpenOrders account for this market
*/
static loadNullableForMarketAndOwner(market: Market, owner?: PublicKey, indexer?: OpenOrdersIndexer | null): Promise;
reload(): Promise;
getBalanceNative(): [BN, BN];
setDelegate(delegate: Keypair): this;
placeOrder(order: OrderToPlace): Promise;
cancelOrder(order: Order | {
clientOrderId: number;
}): Promise;
cancelAllOrders(side: Side | null): Promise;
items(): Generator;
toPrettyString(): string;
getBaseBalanceNative(): BN;
getQuoteBalanceNative(): BN;
getBaseBalanceUi(): number;
getQuoteBalanceUi(): number;
placeOrderIx(order: OrderToPlace, userTokenAccount: PublicKey, remainingAccounts?: PublicKey[]): Promise<[TransactionInstruction, Signer[]]>;
cancelAllOrdersIx(side: Side | null): Promise<[TransactionInstruction, Signer[]]>;
cancelOrderByIdIx(id: BN): Promise<[TransactionInstruction, Signer[]]>;
cancelOrderByClientIdIx(id: BN): Promise<[TransactionInstruction, Signer[]]>;
settleFundsIx(userBaseAccount: PublicKey, userQuoteAccount: PublicKey, referrerAccount: PublicKey | null, penaltyPayer: PublicKey): Promise<[TransactionInstruction, Signer[]]>;
}