import { AccountMeta, AccountSignerMeta, Address, Codec, Decoder, Encoder, Instruction, InstructionWithAccounts, InstructionWithData, Option, OptionOrNullable, ReadonlyAccount, ReadonlyUint8Array, TransactionSigner, WritableAccount, WritableSignerAccount } from '@solana/kit'; import { WAVEBREAK_PROGRAM_ADDRESS } from '../programs'; export declare const TOKEN_BUY_EXACT_IN_DISCRIMINATOR = 8; export declare function getTokenBuyExactInDiscriminatorBytes(): ReadonlyUint8Array; export type TokenBuyExactInInstruction = string, TAccountBondingCurve extends string | AccountMeta = string, TAccountBaseMint extends string | AccountMeta = string, TAccountBaseAta extends string | AccountMeta = string, TAccountQuoteMint extends string | AccountMeta = string, TAccountQuoteVault extends string | AccountMeta = string, TAccountQuoteAta extends string | AccountMeta = string, TAccountSystemProgram extends string | AccountMeta = "11111111111111111111111111111111", TAccountAtaProgram extends string | AccountMeta = "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", TAccountBaseTokenProgram extends string | AccountMeta = string, TAccountQuoteTokenProgram extends string | AccountMeta = string, TRemainingAccounts extends readonly AccountMeta[] = []> = Instruction & InstructionWithData & InstructionWithAccounts<[ TAccountBuyer extends string ? WritableSignerAccount & AccountSignerMeta : TAccountBuyer, TAccountBondingCurve extends string ? WritableAccount : TAccountBondingCurve, TAccountBaseMint extends string ? WritableAccount : TAccountBaseMint, TAccountBaseAta extends string ? WritableAccount : TAccountBaseAta, TAccountQuoteMint extends string ? ReadonlyAccount : TAccountQuoteMint, TAccountQuoteVault extends string ? WritableAccount : TAccountQuoteVault, TAccountQuoteAta extends string ? WritableAccount : TAccountQuoteAta, TAccountSystemProgram extends string ? ReadonlyAccount : TAccountSystemProgram, TAccountAtaProgram extends string ? ReadonlyAccount : TAccountAtaProgram, TAccountBaseTokenProgram extends string ? ReadonlyAccount : TAccountBaseTokenProgram, TAccountQuoteTokenProgram extends string ? ReadonlyAccount : TAccountQuoteTokenProgram, ...TRemainingAccounts ]>; export type TokenBuyExactInInstructionData = { discriminator: number; amountIn: bigint; allowPartialFill: boolean; priceThreshold: Option; }; export type TokenBuyExactInInstructionDataArgs = { amountIn: number | bigint; allowPartialFill: boolean; priceThreshold: OptionOrNullable; }; export declare function getTokenBuyExactInInstructionDataEncoder(): Encoder; export declare function getTokenBuyExactInInstructionDataDecoder(): Decoder; export declare function getTokenBuyExactInInstructionDataCodec(): Codec; export type TokenBuyExactInInput = { buyer: TransactionSigner; bondingCurve: Address; baseMint: Address; baseAta: Address; quoteMint: Address; quoteVault: Address; quoteAta: Address; systemProgram?: Address; ataProgram?: Address; baseTokenProgram: Address; quoteTokenProgram: Address; amountIn: TokenBuyExactInInstructionDataArgs["amountIn"]; allowPartialFill: TokenBuyExactInInstructionDataArgs["allowPartialFill"]; priceThreshold: TokenBuyExactInInstructionDataArgs["priceThreshold"]; }; export declare function getTokenBuyExactInInstruction(input: TokenBuyExactInInput, config?: { programAddress?: TProgramAddress; }): TokenBuyExactInInstruction; export type ParsedTokenBuyExactInInstruction = { programAddress: Address; accounts: { buyer: TAccountMetas[0]; bondingCurve: TAccountMetas[1]; baseMint: TAccountMetas[2]; baseAta: TAccountMetas[3]; quoteMint: TAccountMetas[4]; quoteVault: TAccountMetas[5]; quoteAta: TAccountMetas[6]; systemProgram: TAccountMetas[7]; ataProgram: TAccountMetas[8]; baseTokenProgram: TAccountMetas[9]; quoteTokenProgram: TAccountMetas[10]; }; data: TokenBuyExactInInstructionData; }; export declare function parseTokenBuyExactInInstruction(instruction: Instruction & InstructionWithAccounts & InstructionWithData): ParsedTokenBuyExactInInstruction;