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'; import { GraduationMethod, GraduationMethodArgs } from '../types'; export declare const CREATE_LAUNCH_DISCRIMINATOR = 41; export declare function getCreateLaunchDiscriminatorBytes(): ReadonlyUint8Array; export type CreateLaunchInstruction = string, TAccountBondingCurve extends string | AccountMeta = string, TAccountBaseMint extends string | AccountMeta = string, TAccountQuoteMint extends string | AccountMeta = string, TAccountQuoteVault extends string | AccountMeta = string, TAccountMintConfig extends string | AccountMeta = string, TAccountMetadata extends string | AccountMeta = string, TAccountSystemProgram extends string | AccountMeta = "11111111111111111111111111111111", TAccountBaseTokenProgram extends string | AccountMeta = string, TAccountQuoteTokenProgram extends string | AccountMeta = string, TAccountAtaProgram extends string | AccountMeta = "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", TAccountMetaplexProgram extends string | AccountMeta = string, TRemainingAccounts extends readonly AccountMeta[] = []> = Instruction & InstructionWithData & InstructionWithAccounts<[ TAccountCreator extends string ? WritableSignerAccount & AccountSignerMeta : TAccountCreator, TAccountBondingCurve extends string ? WritableAccount : TAccountBondingCurve, TAccountBaseMint extends string ? WritableSignerAccount & AccountSignerMeta : TAccountBaseMint, TAccountQuoteMint extends string ? ReadonlyAccount : TAccountQuoteMint, TAccountQuoteVault extends string ? WritableAccount : TAccountQuoteVault, TAccountMintConfig extends string ? ReadonlyAccount : TAccountMintConfig, TAccountMetadata extends string ? WritableAccount : TAccountMetadata, TAccountSystemProgram extends string ? ReadonlyAccount : TAccountSystemProgram, TAccountBaseTokenProgram extends string ? ReadonlyAccount : TAccountBaseTokenProgram, TAccountQuoteTokenProgram extends string ? ReadonlyAccount : TAccountQuoteTokenProgram, TAccountAtaProgram extends string ? ReadonlyAccount : TAccountAtaProgram, TAccountMetaplexProgram extends string ? ReadonlyAccount : TAccountMetaplexProgram, ...TRemainingAccounts ]>; export type CreateLaunchInstructionData = { discriminator: number; name: string; symbol: string; uri: string; startPrice: Option; endPrice: Option; controlPoints: Option>; graduationTarget: Option; graduationMethods: Option>; launchTime: Option; graduationTime: Option; baseAllocationBps: Option; }; export type CreateLaunchInstructionDataArgs = { name: string; symbol: string; uri: string; startPrice: OptionOrNullable; endPrice: OptionOrNullable; controlPoints: OptionOrNullable>; graduationTarget: OptionOrNullable; graduationMethods: OptionOrNullable>; launchTime: OptionOrNullable; graduationTime: OptionOrNullable; baseAllocationBps: OptionOrNullable; }; export declare function getCreateLaunchInstructionDataEncoder(): Encoder; export declare function getCreateLaunchInstructionDataDecoder(): Decoder; export declare function getCreateLaunchInstructionDataCodec(): Codec; export type CreateLaunchInput = { creator: TransactionSigner; bondingCurve: Address; baseMint: TransactionSigner; quoteMint: Address; quoteVault: Address; mintConfig: Address; metadata: Address; systemProgram?: Address; baseTokenProgram: Address; quoteTokenProgram: Address; ataProgram?: Address; metaplexProgram: Address; name: CreateLaunchInstructionDataArgs["name"]; symbol: CreateLaunchInstructionDataArgs["symbol"]; uri: CreateLaunchInstructionDataArgs["uri"]; startPrice: CreateLaunchInstructionDataArgs["startPrice"]; endPrice: CreateLaunchInstructionDataArgs["endPrice"]; controlPoints: CreateLaunchInstructionDataArgs["controlPoints"]; graduationTarget: CreateLaunchInstructionDataArgs["graduationTarget"]; graduationMethods: CreateLaunchInstructionDataArgs["graduationMethods"]; launchTime: CreateLaunchInstructionDataArgs["launchTime"]; graduationTime: CreateLaunchInstructionDataArgs["graduationTime"]; baseAllocationBps: CreateLaunchInstructionDataArgs["baseAllocationBps"]; }; export declare function getCreateLaunchInstruction(input: CreateLaunchInput, config?: { programAddress?: TProgramAddress; }): CreateLaunchInstruction; export type ParsedCreateLaunchInstruction = { programAddress: Address; accounts: { creator: TAccountMetas[0]; bondingCurve: TAccountMetas[1]; baseMint: TAccountMetas[2]; quoteMint: TAccountMetas[3]; quoteVault: TAccountMetas[4]; mintConfig: TAccountMetas[5]; metadata: TAccountMetas[6]; systemProgram: TAccountMetas[7]; baseTokenProgram: TAccountMetas[8]; quoteTokenProgram: TAccountMetas[9]; ataProgram: TAccountMetas[10]; metaplexProgram: TAccountMetas[11]; }; data: CreateLaunchInstructionData; }; export declare function parseCreateLaunchInstruction(instruction: Instruction & InstructionWithAccounts & InstructionWithData): ParsedCreateLaunchInstruction;