///
import { Leg as SolitaLeg, QuoteAsset as SolitaQuoteAsset } from '@convergence-rfq/rfq';
import { AdditionalResponseData, PrintTrade, PrintTradeLeg, PrintTradeParser, PrintTradeQuote } from '../printTradeModule';
import { AuthoritySide, PrintTradeRfq, PrintTradeResponse } from '../rfqModule';
import { HxroLegInput, HxroProductInfo } from './types';
import { Convergence } from '../../Convergence';
import { PublicKey } from '../../types';
import { CvgCache, TransactionBuilderOptions } from '../../utils';
export declare class HxroPrintTrade implements PrintTrade {
protected cvg: Convergence;
takerTrg: PublicKey;
protected legsInfo: HxroLegInput[];
constructor(cvg: Convergence, takerTrg: PublicKey, legsInfo: HxroLegInput[]);
getHxroContextHelper: (cvg: Convergence, response: PrintTradeResponse, firstToPrepare: AuthoritySide) => Promise;
getPrintTradeProviderProgramId: () => PublicKey;
getLegs: () => HxroLeg[];
getQuote: () => HxroQuote;
getValidationAccounts: () => Promise<{
pubkey: PublicKey;
isSigner: boolean;
isWritable: boolean;
}[]>;
getSettlementPreparations: (rfq: PrintTradeRfq, response: PrintTradeResponse, side: AuthoritySide, options: TransactionBuilderOptions) => Promise<{
accounts: {
pubkey: any;
isSigner: boolean;
isWritable: boolean;
}[];
builders: import("../../utils").TransactionBuilder<{}>[];
}>;
getSettlementAccounts: (rfq: PrintTradeRfq, response: PrintTradeResponse) => Promise<{
pubkey: any;
isSigner: boolean;
isWritable: boolean;
}[]>;
getRevertPreparations: (rfq: PrintTradeRfq, response: PrintTradeResponse, side: AuthoritySide, options: TransactionBuilderOptions) => Promise<{
accounts: {
pubkey: import("../../types").Pda;
isSigner: boolean;
isWritable: boolean;
}[];
postBuilders: import("../../utils").TransactionBuilder<{}>[];
}>;
getCleanUpAccounts: (rfq: PrintTradeRfq, response: PrintTradeResponse) => Promise<{
pubkey: any;
isSigner: boolean;
isWritable: boolean;
}[]>;
overwriteWithFullHxroProductData: (fullProductsData: HxroProductInfo[]) => void;
getValidateResponseAccounts: (additionalData: AdditionalResponseData | undefined) => Promise<{
pubkey: PublicKey;
isSigner: boolean;
isWritable: boolean;
}[]>;
}
export declare class HxroPrintTradeParser implements PrintTradeParser {
parsePrintTrade(cvg: Convergence, legs: SolitaLeg[], quote: SolitaQuoteAsset): PrintTrade;
}
declare class HxroQuote implements PrintTradeQuote {
takerTrg: PublicKey;
constructor(takerTrg: PublicKey);
getDecimals: () => number;
serializeInstrumentData: () => Buffer;
}
export declare class HxroLeg implements PrintTradeLeg {
legInfo: HxroLegInput;
legType: 'printTrade';
constructor(legInfo: HxroLegInput);
getInstrumentType: () => "option" | "term-future" | "perp-future";
getBaseAssetIndex: () => {
value: number;
};
getAmount: () => number;
getDecimals: () => number;
getSide: () => import("../rfqModule").LegSide;
serializeInstrumentData: () => Buffer;
}
export declare class HxroAdditionalRespondData extends AdditionalResponseData {
makerTrg: PublicKey;
constructor(makerTrg: PublicKey);
serialize(): Buffer;
static deserialize(data: Uint8Array): HxroAdditionalRespondData;
}
export declare class HxroContextHelper {
private cvg;
manifest: any;
mpg: any;
private printTrade;
private response;
private firstToPrepare;
creatorTrgData: CvgCache;
counterpartyTrgData: CvgCache;
operatorTrg: CvgCache;
private constructor();
static create(cvg: Convergence, printTrade: HxroPrintTrade, response: PrintTradeResponse, firstToPrepare: AuthoritySide): Promise;
getTakerTrg(): PublicKey;
getMakerTrg(): PublicKey;
getCreatorTrg(): PublicKey;
getCounterpartyTrg(): PublicKey;
getPrintTrade(): PublicKey;
getDexProgramId(): any;
getRiskAndFeeSigner(): PublicKey;
getTrgBySide(side: AuthoritySide): PublicKey;
getTrgDataBySide(side: AuthoritySide): CvgCache;
}
export {};