import { Address, ReadonlyUint8Array } from '@solana/kit';
import { ParsedAuthorityConfigGrantInstruction, ParsedAuthorityConfigInitializeInstruction, ParsedAuthorityConfigRevokeInstruction, ParsedBondingCurveCloseInstruction, ParsedBondingCurveCollectFeesInstruction, ParsedBondingCurveGraduateInstruction, ParsedBondingCurveInitializeInstruction, ParsedCreateLaunchInstruction, ParsedCreateLockedlaunchInstruction, ParsedCreatePresaleInstruction, ParsedGraduateManualInstruction, ParsedGraduateWhirlpoolInstruction, ParsedLpHarvestInstruction, ParsedLpTakeoverInstruction, ParsedLpTransferInstruction, ParsedMintConfigCloseInstruction, ParsedMintConfigInitializeInstruction, ParsedMintConfigUpdateInstruction, ParsedPermissionConfigCloseInstruction, ParsedPermissionConfigInitializeInstruction, ParsedPermissionConfigUpdateInstruction, ParsedPermissionConsumeCpiInstruction, ParsedPermissionConsumeTopLevelInstruction, ParsedPermissionRefundInstruction, ParsedPermissionRevokeInstruction, ParsedTokenBuyExactInInstruction, ParsedTokenBuyExactOutInstruction, ParsedTokenRefundInstruction, ParsedTokenSellExactInInstruction, ParsedTokenSellExactOutInstruction } from '../instructions';
export declare const WAVEBREAK_PROGRAM_ADDRESS: Address<"waveQX2yP3H1pVU8djGvEHmYg8uamQ84AuyGtpsrXTF">;
export declare enum WavebreakAccount {
    AuthorityConfig = 0,
    BondingCurve = 1,
    MintConfig = 2,
    PermissionConfig = 3,
    ConsumedPermission = 4
}
export declare function identifyWavebreakAccount(account: {
    data: ReadonlyUint8Array;
} | ReadonlyUint8Array): WavebreakAccount;
export declare enum WavebreakInstruction {
    PermissionConsumeTopLevel = 0,
    PermissionConsumeCpi = 1,
    PermissionConfigInitialize = 2,
    PermissionConfigUpdate = 3,
    PermissionConfigClose = 4,
    PermissionRevoke = 5,
    PermissionRefund = 6,
    TokenBuyExactIn = 7,
    TokenBuyExactOut = 8,
    TokenSellExactIn = 9,
    TokenSellExactOut = 10,
    TokenRefund = 11,
    AuthorityConfigInitialize = 12,
    AuthorityConfigGrant = 13,
    AuthorityConfigRevoke = 14,
    MintConfigInitialize = 15,
    MintConfigClose = 16,
    MintConfigUpdate = 17,
    GraduateWhirlpool = 18,
    GraduateManual = 19,
    CreateLockedlaunch = 20,
    CreateLaunch = 21,
    CreatePresale = 22,
    BondingCurveInitialize = 23,
    BondingCurveCollectFees = 24,
    BondingCurveGraduate = 25,
    BondingCurveClose = 26,
    LpHarvest = 27,
    LpTransfer = 28,
    LpTakeover = 29
}
export declare function identifyWavebreakInstruction(instruction: {
    data: ReadonlyUint8Array;
} | ReadonlyUint8Array): WavebreakInstruction;
export type ParsedWavebreakInstruction<TProgram extends string = "waveQX2yP3H1pVU8djGvEHmYg8uamQ84AuyGtpsrXTF"> = ({
    instructionType: WavebreakInstruction.PermissionConsumeTopLevel;
} & ParsedPermissionConsumeTopLevelInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.PermissionConsumeCpi;
} & ParsedPermissionConsumeCpiInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.PermissionConfigInitialize;
} & ParsedPermissionConfigInitializeInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.PermissionConfigUpdate;
} & ParsedPermissionConfigUpdateInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.PermissionConfigClose;
} & ParsedPermissionConfigCloseInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.PermissionRevoke;
} & ParsedPermissionRevokeInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.PermissionRefund;
} & ParsedPermissionRefundInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.TokenBuyExactIn;
} & ParsedTokenBuyExactInInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.TokenBuyExactOut;
} & ParsedTokenBuyExactOutInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.TokenSellExactIn;
} & ParsedTokenSellExactInInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.TokenSellExactOut;
} & ParsedTokenSellExactOutInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.TokenRefund;
} & ParsedTokenRefundInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.AuthorityConfigInitialize;
} & ParsedAuthorityConfigInitializeInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.AuthorityConfigGrant;
} & ParsedAuthorityConfigGrantInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.AuthorityConfigRevoke;
} & ParsedAuthorityConfigRevokeInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.MintConfigInitialize;
} & ParsedMintConfigInitializeInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.MintConfigClose;
} & ParsedMintConfigCloseInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.MintConfigUpdate;
} & ParsedMintConfigUpdateInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.GraduateWhirlpool;
} & ParsedGraduateWhirlpoolInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.GraduateManual;
} & ParsedGraduateManualInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.CreateLockedlaunch;
} & ParsedCreateLockedlaunchInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.CreateLaunch;
} & ParsedCreateLaunchInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.CreatePresale;
} & ParsedCreatePresaleInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.BondingCurveInitialize;
} & ParsedBondingCurveInitializeInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.BondingCurveCollectFees;
} & ParsedBondingCurveCollectFeesInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.BondingCurveGraduate;
} & ParsedBondingCurveGraduateInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.BondingCurveClose;
} & ParsedBondingCurveCloseInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.LpHarvest;
} & ParsedLpHarvestInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.LpTransfer;
} & ParsedLpTransferInstruction<TProgram>) | ({
    instructionType: WavebreakInstruction.LpTakeover;
} & ParsedLpTakeoverInstruction<TProgram>);
