///
import { PublicKey } from "@solana/web3.js";
import { TransactionBuilder } from "@orca-so/common-sdk";
import { ConfigOptionParams, MarketStateData, EscrowContext, KycCertData, PDA, OfferQuotes, EscrowFetcher } from "..";
import { BN } from "@project-serum/anchor";
export declare class MarketClient {
ctx: EscrowContext;
escrowFetcher: EscrowFetcher;
publicKey: PublicKey;
data: MarketStateData;
pda: PDA;
tokenMint: PublicKey;
constructor(ctx: EscrowContext, publicKey: PublicKey, tokenMint: PublicKey, pda: PDA, data: MarketStateData);
static getMarket(ctx: EscrowContext, configId: string, marketId: string, tokenMint: PublicKey): Promise;
setTradeConfigAuthority(deployerPubkey: PublicKey, newTradeConfigAuthority: PublicKey): Promise;
setAmlPolicyAuthority(deployerPubkey: PublicKey, newAmlPolicyAuthority: PublicKey): Promise;
addArbitratorCert(tradeConfigAuthority: PublicKey, arbitratorAuthority: PublicKey): Promise;
addTokenMetadata(tradeConfigAuthority: PublicKey, quota30Days: BN[], quota24Hours: BN[]): Promise;
addTokenOracleMetadata(tradeConfigAuthority: PublicKey, renecOraclePubkey: PublicKey, quota30Days: BN[], quota24Hours: BN[]): Promise;
setRenecRate(tradeConfigAuthority: PublicKey, renecRate: BN): Promise;
setUsdRate(tradeConfigAuthority: PublicKey, usdRate: BN): Promise;
setMinmumOfferSize(tradeConfigAuthority: PublicKey, minimumOfferSize: BN): Promise;
removeArbitratorCert(tradeConfigAuthority: PublicKey, arbitratorAuthority: PublicKey): Promise;
updateMarketState(tradeConfigAuthority: PublicKey, option: ConfigOptionParams): Promise;
setKycCert(amlPolicyAuthority: PublicKey, user: PublicKey, level: number): Promise;
getKycCert(user: PublicKey): Promise;
isArbitrator(arbitratorAuthority: PublicKey): Promise;
refresh(): Promise;
getOffersQuotesMatchingEngine(user: PublicKey, totalTradeAmount: BN, bondType?: object): Promise;
private buildMatchingEngineTransaction;
private matchingEngine;
/**
* @param totalTradeAmount Raw token amount
*/
matchingEngineWithExactCryptoAmount(user: PublicKey, totalTradeAmount: BN, offerQuotes: OfferQuotes, useBondless: boolean, takerBondType: object, buyOfferAccounts?: PublicKey[]): Promise<{
txs: TransactionBuilder[];
ids: BN[][];
}>;
/**
* @param totalTradeAmount UI fiat amount
*/
matchingEngineWithExactFiatAmount(user: PublicKey, totalTradeAmount: number, offerQuotes: OfferQuotes, useBondless: boolean, takerBondType: object, buyOfferAccounts?: PublicKey[]): Promise<{
txs: TransactionBuilder[];
ids: BN[][];
}>;
private requestCreateTrade;
/**
* @param tradeAmount Raw token amount
*/
requestCreateTradeWithExactCryptoAmount(sellOfferId: BN, user: PublicKey, tradeAmount: BN, expectedRate: number, useBondless: boolean, takerBondType: object, buyOfferAccount?: PublicKey): Promise<{
tx: TransactionBuilder;
id: BN;
}>;
/**
* @param tradeAmount UI fiat amount
*/
requestCreateTradeWithExactFiatAmount(sellOfferId: BN, user: PublicKey, tradeAmount: number, expectedRate: number, useBondless: boolean, takerBondType: object, buyOfferAccount?: PublicKey): Promise<{
tx: TransactionBuilder;
id: BN;
}>;
}