///
import { PublicKey } from '@solana/web3.js';
import { Leg, BaseAssetIndex, QuoteAsset } from '@convergence-rfq/rfq';
import { Mint } from '../tokenModule';
import { LegInstrument, QuoteInstrument, CreateOptionInstrumentsResult } from '../instrumentModule';
import { Convergence } from '../../Convergence';
import { LegSide } from '../rfqModule/models/LegSide';
import { Protocol } from '../protocolModule';
type InstrumentData = {
mintAddress: PublicKey;
};
export declare const SpotInstrumentDataSerializer: import("../../types").Serializer;
/**
* This model captures all the relevant information about a spot
* instrument on the Solana blockchain.
*
* @group Models
*/
export declare class SpotLegInstrument implements LegInstrument {
readonly convergence: Convergence;
readonly mintAddress: PublicKey;
readonly baseAssetIndex: BaseAssetIndex;
readonly instrumentIndex: number;
readonly amount: number;
readonly decimals: number;
readonly side: LegSide;
legType: 'escrow';
constructor(convergence: Convergence, mintAddress: PublicKey, baseAssetIndex: BaseAssetIndex, instrumentIndex: number, amount: number, decimals: number, side: LegSide);
getInstrumentIndex: () => number;
getProgramId: () => PublicKey;
getBaseAssetIndex: () => BaseAssetIndex;
getAssetMint: () => PublicKey;
getSide: () => LegSide;
getDecimals: () => number;
getAmount: () => number;
getPreparationsBeforeRfqCreation(): Promise;
static create(convergence: Convergence, mint: Mint, amount: number, side?: LegSide): Promise;
static deserializeInstrumentData(buffer: Buffer): InstrumentData;
/** Helper method to get validation accounts for a spot instrument. */
getValidationAccounts(): {
pubkey: import("../../types").Pda;
isSigner: boolean;
isWritable: boolean;
}[];
/** Helper method to serialize the instrument data for this instrument. */
serializeInstrumentData(): Buffer;
}
export declare const spotLegInstrumentParser: {
parseFromLeg(convergence: Convergence, leg: Leg, instrumentIndex: number): SpotLegInstrument;
};
export declare class SpotQuoteInstrument implements QuoteInstrument {
readonly convergence: Convergence;
readonly instrumentIndex: number;
readonly mintAddress: PublicKey;
readonly decimals: number;
protected constructor(convergence: Convergence, instrumentIndex: number, mintAddress: PublicKey, decimals: number);
getInstrumentIndex: () => number;
getAssetMint: () => PublicKey;
getProgramId: () => PublicKey;
getDecimals: () => number;
static parseFromQuote(convergence: Convergence, protocol: Protocol, quote: QuoteAsset): QuoteInstrument;
static create(convergence: Convergence, mint: Mint): Promise;
static deserializeInstrumentData(buffer: Buffer): InstrumentData;
/** Helper method to get validation accounts for a spot instrument. */
getValidationAccounts(): {
pubkey: import("../../types").Pda;
isSigner: boolean;
isWritable: boolean;
}[];
/** Helper method to serialize the instrument data for this instrument. */
serializeInstrumentData(): Buffer;
}
export {};