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_PRESALE_DISCRIMINATOR = 42; export declare function getCreatePresaleDiscriminatorBytes(): ReadonlyUint8Array; export type CreatePresaleInstruction = 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 CreatePresaleInstructionData = { discriminator: number; name: string; symbol: string; uri: string; tokenPrice: Option; graduationTarget: Option; graduationMethods: Option>; launchTime: Option; graduationTime: Option; minReserveBps: Option; baseAllocationBps: Option; }; export type CreatePresaleInstructionDataArgs = { name: string; symbol: string; uri: string; tokenPrice: OptionOrNullable; graduationTarget: OptionOrNullable; graduationMethods: OptionOrNullable>; launchTime: OptionOrNullable; graduationTime: OptionOrNullable; minReserveBps: OptionOrNullable; baseAllocationBps: OptionOrNullable; }; export declare function getCreatePresaleInstructionDataEncoder(): Encoder; export declare function getCreatePresaleInstructionDataDecoder(): Decoder; export declare function getCreatePresaleInstructionDataCodec(): Codec; export type CreatePresaleInput = { 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: CreatePresaleInstructionDataArgs["name"]; symbol: CreatePresaleInstructionDataArgs["symbol"]; uri: CreatePresaleInstructionDataArgs["uri"]; tokenPrice: CreatePresaleInstructionDataArgs["tokenPrice"]; graduationTarget: CreatePresaleInstructionDataArgs["graduationTarget"]; graduationMethods: CreatePresaleInstructionDataArgs["graduationMethods"]; launchTime: CreatePresaleInstructionDataArgs["launchTime"]; graduationTime: CreatePresaleInstructionDataArgs["graduationTime"]; minReserveBps: CreatePresaleInstructionDataArgs["minReserveBps"]; baseAllocationBps: CreatePresaleInstructionDataArgs["baseAllocationBps"]; }; export declare function getCreatePresaleInstruction(input: CreatePresaleInput, config?: { programAddress?: TProgramAddress; }): CreatePresaleInstruction; export type ParsedCreatePresaleInstruction = { 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: CreatePresaleInstructionData; }; export declare function parseCreatePresaleInstruction(instruction: Instruction & InstructionWithAccounts & InstructionWithData): ParsedCreatePresaleInstruction;