import { AccountMeta, AccountSignerMeta, Address, Codec, Decoder, Encoder, Instruction, InstructionWithAccounts, InstructionWithData, ReadonlyAccount, ReadonlyUint8Array, TransactionSigner, WritableAccount, WritableSignerAccount } from '@solana/kit'; import { WAVEBREAK_PROGRAM_ADDRESS } from '../programs'; import { GraduationMethod, GraduationMethodArgs } from '../types'; export declare const BONDING_CURVE_INITIALIZE_DISCRIMINATOR = 48; export declare function getBondingCurveInitializeDiscriminatorBytes(): ReadonlyUint8Array; export type BondingCurveInitializeInstruction = string, TAccountBondingCurve extends string | AccountMeta = string, TAccountBaseMint extends string | AccountMeta = string, TAccountQuoteMint extends string | AccountMeta = string, TAccountQuoteVault extends string | AccountMeta = string, TAccountAuthorityConfig extends string | AccountMeta = string, TAccountSystemProgram extends string | AccountMeta = "11111111111111111111111111111111", TAccountBaseTokenProgram extends string | AccountMeta = string, TAccountQuoteTokenProgram extends string | AccountMeta = string, TAccountAtaProgram extends string | AccountMeta = "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", TRemainingAccounts extends readonly AccountMeta[] = []> = Instruction & InstructionWithData & InstructionWithAccounts<[ TAccountAuthority extends string ? WritableSignerAccount & AccountSignerMeta : TAccountAuthority, TAccountBondingCurve extends string ? WritableAccount : TAccountBondingCurve, TAccountBaseMint extends string ? ReadonlyAccount : TAccountBaseMint, TAccountQuoteMint extends string ? ReadonlyAccount : TAccountQuoteMint, TAccountQuoteVault extends string ? WritableAccount : TAccountQuoteVault, TAccountAuthorityConfig extends string ? ReadonlyAccount : TAccountAuthorityConfig, TAccountSystemProgram extends string ? ReadonlyAccount : TAccountSystemProgram, TAccountBaseTokenProgram extends string ? ReadonlyAccount : TAccountBaseTokenProgram, TAccountQuoteTokenProgram extends string ? ReadonlyAccount : TAccountQuoteTokenProgram, TAccountAtaProgram extends string ? ReadonlyAccount : TAccountAtaProgram, ...TRemainingAccounts ]>; export type BondingCurveInitializeInstructionData = { discriminator: number; startPrice: bigint; endPrice: bigint; controlPoints: Array; creator: Address; graduationMethods: Array; swapFeeBps: number; quoteFeeBps: number; baseFeeBps: number; launchTime: bigint; creatorReward: bigint; graduationReward: bigint; graduationTarget: bigint; graduationTime: bigint; minReserveBps: number; buyRequiresPermission: boolean; buyPermissionBitmap: ReadonlyUint8Array; sellRequiresPermission: boolean; sellPermissionBitmap: ReadonlyUint8Array; maxBuyAmount: bigint; maxSellAmount: bigint; retainMintAuthority: boolean; baseAllocationBps: number; }; export type BondingCurveInitializeInstructionDataArgs = { startPrice: number | bigint; endPrice: number | bigint; controlPoints: Array; creator: Address; graduationMethods: Array; swapFeeBps: number; quoteFeeBps: number; baseFeeBps: number; launchTime: number | bigint; creatorReward: number | bigint; graduationReward: number | bigint; graduationTarget: number | bigint; graduationTime: number | bigint; minReserveBps: number; buyRequiresPermission: boolean; buyPermissionBitmap: ReadonlyUint8Array; sellRequiresPermission: boolean; sellPermissionBitmap: ReadonlyUint8Array; maxBuyAmount: number | bigint; maxSellAmount: number | bigint; retainMintAuthority: boolean; baseAllocationBps: number; }; export declare function getBondingCurveInitializeInstructionDataEncoder(): Encoder; export declare function getBondingCurveInitializeInstructionDataDecoder(): Decoder; export declare function getBondingCurveInitializeInstructionDataCodec(): Codec; export type BondingCurveInitializeInput = { authority: TransactionSigner; bondingCurve: Address; baseMint: Address; quoteMint: Address; quoteVault: Address; authorityConfig: Address; systemProgram?: Address; baseTokenProgram: Address; quoteTokenProgram: Address; ataProgram?: Address; startPrice: BondingCurveInitializeInstructionDataArgs["startPrice"]; endPrice: BondingCurveInitializeInstructionDataArgs["endPrice"]; controlPoints: BondingCurveInitializeInstructionDataArgs["controlPoints"]; creator: BondingCurveInitializeInstructionDataArgs["creator"]; graduationMethods: BondingCurveInitializeInstructionDataArgs["graduationMethods"]; swapFeeBps: BondingCurveInitializeInstructionDataArgs["swapFeeBps"]; quoteFeeBps: BondingCurveInitializeInstructionDataArgs["quoteFeeBps"]; baseFeeBps: BondingCurveInitializeInstructionDataArgs["baseFeeBps"]; launchTime: BondingCurveInitializeInstructionDataArgs["launchTime"]; creatorReward: BondingCurveInitializeInstructionDataArgs["creatorReward"]; graduationReward: BondingCurveInitializeInstructionDataArgs["graduationReward"]; graduationTarget: BondingCurveInitializeInstructionDataArgs["graduationTarget"]; graduationTime: BondingCurveInitializeInstructionDataArgs["graduationTime"]; minReserveBps: BondingCurveInitializeInstructionDataArgs["minReserveBps"]; buyRequiresPermission: BondingCurveInitializeInstructionDataArgs["buyRequiresPermission"]; buyPermissionBitmap: BondingCurveInitializeInstructionDataArgs["buyPermissionBitmap"]; sellRequiresPermission: BondingCurveInitializeInstructionDataArgs["sellRequiresPermission"]; sellPermissionBitmap: BondingCurveInitializeInstructionDataArgs["sellPermissionBitmap"]; maxBuyAmount: BondingCurveInitializeInstructionDataArgs["maxBuyAmount"]; maxSellAmount: BondingCurveInitializeInstructionDataArgs["maxSellAmount"]; retainMintAuthority: BondingCurveInitializeInstructionDataArgs["retainMintAuthority"]; baseAllocationBps: BondingCurveInitializeInstructionDataArgs["baseAllocationBps"]; }; export declare function getBondingCurveInitializeInstruction(input: BondingCurveInitializeInput, config?: { programAddress?: TProgramAddress; }): BondingCurveInitializeInstruction; export type ParsedBondingCurveInitializeInstruction = { programAddress: Address; accounts: { authority: TAccountMetas[0]; bondingCurve: TAccountMetas[1]; baseMint: TAccountMetas[2]; quoteMint: TAccountMetas[3]; quoteVault: TAccountMetas[4]; authorityConfig: TAccountMetas[5]; systemProgram: TAccountMetas[6]; baseTokenProgram: TAccountMetas[7]; quoteTokenProgram: TAccountMetas[8]; ataProgram: TAccountMetas[9]; }; data: BondingCurveInitializeInstructionData; }; export declare function parseBondingCurveInitializeInstruction(instruction: Instruction & InstructionWithAccounts & InstructionWithData): ParsedBondingCurveInitializeInstruction;