///
import { PublicKey, AccountMeta, TransactionInstruction } from "@solana/web3.js";
import { Address, Program, Provider } from "@project-serum/anchor";
import { Dex } from "@dradex/idl";
import { DexMarket } from "./market";
import { InstructionSet, OrderInput } from "./core";
export interface DexMetadata {
address: Address;
master: [Address, number];
}
export interface MarketOperationAccountsInput {
marketUser?: PublicKey;
dexUser?: PublicKey;
t0User?: PublicKey;
t1User?: PublicKey;
}
export declare class DexProgram extends Program {
loggerProgramId: PublicKey;
systemAccounts: {
signer: PublicKey;
master: PublicKey;
rent: PublicKey;
clock: PublicKey;
systemProgram: PublicKey;
tokenProgram: PublicKey;
logger: PublicKey;
};
bumps: {
master: number;
};
constructor(options?: {
provider?: Provider;
loggerProgramId?: Address;
dexMetadata?: DexMetadata;
});
loadDexMetadata(dexMetadata: DexMetadata): void;
get connection(): import("@solana/web3.js").Connection;
get signer(): PublicKey;
createInstructionSet(instructions: TransactionInstruction[]): InstructionSet;
getMarket(address: PublicKey): Promise;
loadMarket(market: DexMarket): Promise;
private toAccountInfoMap;
findProgramAddress(seeds: Buffer[], programId?: PublicKey): Promise<[PublicKey, number]>;
getProgramAddress(seeds: Buffer[]): Promise;
getMarketUserAddress(market: PublicKey, user?: PublicKey): Promise;
getDexUserAddress(user?: PublicKey): Promise;
createOrder(market: DexMarket, input: OrderInput, options?: {
accounts?: MarketOperationAccountsInput;
remainingAccounts?: AccountMeta[];
}): Promise;
createDexUser(user?: PublicKey): Promise;
createMarketUser(market: DexMarket, user?: PublicKey): Promise;
}
//# sourceMappingURL=program.d.ts.map