///
import { Mint } from "@solana/spl-token";
import { Order } from "@dradex/idl";
import { AccountInfo, PublicKey } from "@solana/web3.js";
import { MarketState } from "./core";
import { Quote, QuoteCalculator, QuoteParams } from "./quote";
export declare type AccountInfoMap = Map | null>;
interface Amm {
reserveTokenMints: PublicKey[];
getAccountsForUpdate(): PublicKey[];
update(accountInfoMap: AccountInfoMap): void;
getQuote(quoteParams: QuoteParams): Quote;
}
export declare class DexMarket implements Amm {
address: PublicKey;
id: string;
reserveTokenMints: PublicKey[];
state: MarketState;
orderBookState: {
bids: Order[];
asks: Order[];
};
mintInfos: Mint[];
quoteCalculator: QuoteCalculator;
constructor(address: PublicKey, accountInfo: AccountInfo);
decodeMarketState(accountInfo: AccountInfo): void;
getAccountsForUpdate(): PublicKey[];
update(accountInfoMap: AccountInfoMap): void;
getQuote(quoteParams: QuoteParams): Quote;
getAccounts(): {
pair: PublicKey;
market: PublicKey;
t0Vault: PublicKey;
t1Vault: PublicKey;
bids: PublicKey;
asks: PublicKey;
eventQueue: PublicKey;
};
}
export {};
//# sourceMappingURL=market.d.ts.map