/**
 * This code was AUTOGENERATED using the Codama library.
 * Please DO NOT EDIT THIS FILE, instead use visitors
 * to add features, then rerun Codama to update it.
 *
 * @see https://github.com/codama-idl/codama
 */
import { type AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/kit';
import { YVAULTS_PROGRAM_ADDRESS } from '../programs';
export declare const CLOSE_STRATEGY_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getCloseStrategyDiscriminatorBytes(): ReadonlyUint8Array<ArrayBuffer>;
export type CloseStrategyInstruction<TProgram extends string = typeof YVAULTS_PROGRAM_ADDRESS, TAccountAdminAuthority extends string | AccountMeta<string> = string, TAccountStrategy extends string | AccountMeta<string> = string, TAccountOldPositionOrBaseVaultAuthority extends string | AccountMeta<string> = string, TAccountOldPositionMintOrBaseVaultAuthority extends string | AccountMeta<string> = string, TAccountOldPositionTokenAccountOrBaseVaultAuthority extends string | AccountMeta<string> = string, TAccountOldTickArrayLowerOrBaseVaultAuthority extends string | AccountMeta<string> = string, TAccountOldTickArrayUpperOrBaseVaultAuthority extends string | AccountMeta<string> = string, TAccountPool extends string | AccountMeta<string> = string, TAccountTokenAVault extends string | AccountMeta<string> = string, TAccountTokenBVault extends string | AccountMeta<string> = string, TAccountUserTokenAAta extends string | AccountMeta<string> = string, TAccountUserTokenBAta extends string | AccountMeta<string> = string, TAccountTokenAMint extends string | AccountMeta<string> = string, TAccountTokenBMint extends string | AccountMeta<string> = string, TAccountReward0Vault extends string | AccountMeta<string> = string, TAccountReward1Vault extends string | AccountMeta<string> = string, TAccountReward2Vault extends string | AccountMeta<string> = string, TAccountKaminoReward0Vault extends string | AccountMeta<string> = string, TAccountKaminoReward1Vault extends string | AccountMeta<string> = string, TAccountKaminoReward2Vault extends string | AccountMeta<string> = string, TAccountUserReward0Ata extends string | AccountMeta<string> = string, TAccountUserReward1Ata extends string | AccountMeta<string> = string, TAccountUserReward2Ata extends string | AccountMeta<string> = string, TAccountUserKaminoReward0Ata extends string | AccountMeta<string> = string, TAccountUserKaminoReward1Ata extends string | AccountMeta<string> = string, TAccountUserKaminoReward2Ata extends string | AccountMeta<string> = string, TAccountBaseVaultAuthority extends string | AccountMeta<string> = string, TAccountPoolProgram extends string | AccountMeta<string> = string, TAccountTokenProgram extends string | AccountMeta<string> = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", TAccountTokenATokenProgram extends string | AccountMeta<string> = string, TAccountTokenBTokenProgram extends string | AccountMeta<string> = string, TAccountSystem extends string | AccountMeta<string> = string, TAccountEventAuthority extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountAdminAuthority extends string ? WritableSignerAccount<TAccountAdminAuthority> & AccountSignerMeta<TAccountAdminAuthority> : TAccountAdminAuthority, TAccountStrategy extends string ? WritableAccount<TAccountStrategy> : TAccountStrategy, TAccountOldPositionOrBaseVaultAuthority extends string ? WritableAccount<TAccountOldPositionOrBaseVaultAuthority> : TAccountOldPositionOrBaseVaultAuthority, TAccountOldPositionMintOrBaseVaultAuthority extends string ? WritableAccount<TAccountOldPositionMintOrBaseVaultAuthority> : TAccountOldPositionMintOrBaseVaultAuthority, TAccountOldPositionTokenAccountOrBaseVaultAuthority extends string ? WritableAccount<TAccountOldPositionTokenAccountOrBaseVaultAuthority> : TAccountOldPositionTokenAccountOrBaseVaultAuthority, TAccountOldTickArrayLowerOrBaseVaultAuthority extends string ? WritableAccount<TAccountOldTickArrayLowerOrBaseVaultAuthority> : TAccountOldTickArrayLowerOrBaseVaultAuthority, TAccountOldTickArrayUpperOrBaseVaultAuthority extends string ? WritableAccount<TAccountOldTickArrayUpperOrBaseVaultAuthority> : TAccountOldTickArrayUpperOrBaseVaultAuthority, TAccountPool extends string ? ReadonlyAccount<TAccountPool> : TAccountPool, TAccountTokenAVault extends string ? WritableAccount<TAccountTokenAVault> : TAccountTokenAVault, TAccountTokenBVault extends string ? WritableAccount<TAccountTokenBVault> : TAccountTokenBVault, TAccountUserTokenAAta extends string ? WritableAccount<TAccountUserTokenAAta> : TAccountUserTokenAAta, TAccountUserTokenBAta extends string ? WritableAccount<TAccountUserTokenBAta> : TAccountUserTokenBAta, TAccountTokenAMint extends string ? WritableAccount<TAccountTokenAMint> : TAccountTokenAMint, TAccountTokenBMint extends string ? WritableAccount<TAccountTokenBMint> : TAccountTokenBMint, TAccountReward0Vault extends string ? WritableAccount<TAccountReward0Vault> : TAccountReward0Vault, TAccountReward1Vault extends string ? WritableAccount<TAccountReward1Vault> : TAccountReward1Vault, TAccountReward2Vault extends string ? WritableAccount<TAccountReward2Vault> : TAccountReward2Vault, TAccountKaminoReward0Vault extends string ? WritableAccount<TAccountKaminoReward0Vault> : TAccountKaminoReward0Vault, TAccountKaminoReward1Vault extends string ? WritableAccount<TAccountKaminoReward1Vault> : TAccountKaminoReward1Vault, TAccountKaminoReward2Vault extends string ? WritableAccount<TAccountKaminoReward2Vault> : TAccountKaminoReward2Vault, TAccountUserReward0Ata extends string ? WritableAccount<TAccountUserReward0Ata> : TAccountUserReward0Ata, TAccountUserReward1Ata extends string ? WritableAccount<TAccountUserReward1Ata> : TAccountUserReward1Ata, TAccountUserReward2Ata extends string ? WritableAccount<TAccountUserReward2Ata> : TAccountUserReward2Ata, TAccountUserKaminoReward0Ata extends string ? WritableAccount<TAccountUserKaminoReward0Ata> : TAccountUserKaminoReward0Ata, TAccountUserKaminoReward1Ata extends string ? WritableAccount<TAccountUserKaminoReward1Ata> : TAccountUserKaminoReward1Ata, TAccountUserKaminoReward2Ata extends string ? WritableAccount<TAccountUserKaminoReward2Ata> : TAccountUserKaminoReward2Ata, TAccountBaseVaultAuthority extends string ? WritableAccount<TAccountBaseVaultAuthority> : TAccountBaseVaultAuthority, TAccountPoolProgram extends string ? ReadonlyAccount<TAccountPoolProgram> : TAccountPoolProgram, TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram, TAccountTokenATokenProgram extends string ? ReadonlyAccount<TAccountTokenATokenProgram> : TAccountTokenATokenProgram, TAccountTokenBTokenProgram extends string ? ReadonlyAccount<TAccountTokenBTokenProgram> : TAccountTokenBTokenProgram, TAccountSystem extends string ? ReadonlyAccount<TAccountSystem> : TAccountSystem, TAccountEventAuthority extends string ? ReadonlyAccount<TAccountEventAuthority> : TAccountEventAuthority, ...TRemainingAccounts]>;
export type CloseStrategyInstructionData = {
    discriminator: ReadonlyUint8Array;
};
export type CloseStrategyInstructionDataArgs = {};
export declare function getCloseStrategyInstructionDataEncoder(): FixedSizeEncoder<CloseStrategyInstructionDataArgs>;
export declare function getCloseStrategyInstructionDataDecoder(): FixedSizeDecoder<CloseStrategyInstructionData>;
export declare function getCloseStrategyInstructionDataCodec(): FixedSizeCodec<CloseStrategyInstructionDataArgs, CloseStrategyInstructionData>;
export type CloseStrategyInput<TAccountAdminAuthority extends string = string, TAccountStrategy extends string = string, TAccountOldPositionOrBaseVaultAuthority extends string = string, TAccountOldPositionMintOrBaseVaultAuthority extends string = string, TAccountOldPositionTokenAccountOrBaseVaultAuthority extends string = string, TAccountOldTickArrayLowerOrBaseVaultAuthority extends string = string, TAccountOldTickArrayUpperOrBaseVaultAuthority extends string = string, TAccountPool extends string = string, TAccountTokenAVault extends string = string, TAccountTokenBVault extends string = string, TAccountUserTokenAAta extends string = string, TAccountUserTokenBAta extends string = string, TAccountTokenAMint extends string = string, TAccountTokenBMint extends string = string, TAccountReward0Vault extends string = string, TAccountReward1Vault extends string = string, TAccountReward2Vault extends string = string, TAccountKaminoReward0Vault extends string = string, TAccountKaminoReward1Vault extends string = string, TAccountKaminoReward2Vault extends string = string, TAccountUserReward0Ata extends string = string, TAccountUserReward1Ata extends string = string, TAccountUserReward2Ata extends string = string, TAccountUserKaminoReward0Ata extends string = string, TAccountUserKaminoReward1Ata extends string = string, TAccountUserKaminoReward2Ata extends string = string, TAccountBaseVaultAuthority extends string = string, TAccountPoolProgram extends string = string, TAccountTokenProgram extends string = string, TAccountTokenATokenProgram extends string = string, TAccountTokenBTokenProgram extends string = string, TAccountSystem extends string = string, TAccountEventAuthority extends string = string> = {
    adminAuthority: TransactionSigner<TAccountAdminAuthority>;
    strategy: Address<TAccountStrategy>;
    oldPositionOrBaseVaultAuthority: Address<TAccountOldPositionOrBaseVaultAuthority>;
    oldPositionMintOrBaseVaultAuthority: Address<TAccountOldPositionMintOrBaseVaultAuthority>;
    oldPositionTokenAccountOrBaseVaultAuthority: Address<TAccountOldPositionTokenAccountOrBaseVaultAuthority>;
    oldTickArrayLowerOrBaseVaultAuthority: Address<TAccountOldTickArrayLowerOrBaseVaultAuthority>;
    oldTickArrayUpperOrBaseVaultAuthority: Address<TAccountOldTickArrayUpperOrBaseVaultAuthority>;
    pool: Address<TAccountPool>;
    tokenAVault: Address<TAccountTokenAVault>;
    tokenBVault: Address<TAccountTokenBVault>;
    userTokenAAta: Address<TAccountUserTokenAAta>;
    userTokenBAta: Address<TAccountUserTokenBAta>;
    tokenAMint: Address<TAccountTokenAMint>;
    tokenBMint: Address<TAccountTokenBMint>;
    /** If rewards are uninitialized, pass this as strategy. */
    reward0Vault: Address<TAccountReward0Vault>;
    /** If rewards are uninitialized, pass this as strategy. */
    reward1Vault: Address<TAccountReward1Vault>;
    /** If rewards are uninitialized, pass this as strategy. */
    reward2Vault: Address<TAccountReward2Vault>;
    /** If rewards are uninitialized, pass this as strategy. */
    kaminoReward0Vault: Address<TAccountKaminoReward0Vault>;
    /** If rewards are uninitialized, pass this as strategy. */
    kaminoReward1Vault: Address<TAccountKaminoReward1Vault>;
    /** If rewards are uninitialized, pass this as strategy. */
    kaminoReward2Vault: Address<TAccountKaminoReward2Vault>;
    /** If rewards are uninitialized, pass this as strategy. */
    userReward0Ata: Address<TAccountUserReward0Ata>;
    /** If rewards are uninitialized, pass this as strategy. */
    userReward1Ata: Address<TAccountUserReward1Ata>;
    /** If rewards are uninitialized, pass this as strategy. */
    userReward2Ata: Address<TAccountUserReward2Ata>;
    /** If rewards are uninitialized, pass this as strategy. */
    userKaminoReward0Ata: Address<TAccountUserKaminoReward0Ata>;
    /** If rewards are uninitialized, pass this as strategy. */
    userKaminoReward1Ata: Address<TAccountUserKaminoReward1Ata>;
    /** If rewards are uninitialized, pass this as strategy. */
    userKaminoReward2Ata: Address<TAccountUserKaminoReward2Ata>;
    baseVaultAuthority: Address<TAccountBaseVaultAuthority>;
    poolProgram: Address<TAccountPoolProgram>;
    tokenProgram?: Address<TAccountTokenProgram>;
    tokenATokenProgram: Address<TAccountTokenATokenProgram>;
    tokenBTokenProgram: Address<TAccountTokenBTokenProgram>;
    system: Address<TAccountSystem>;
    eventAuthority?: Address<TAccountEventAuthority>;
};
export declare function getCloseStrategyInstruction<TAccountAdminAuthority extends string, TAccountStrategy extends string, TAccountOldPositionOrBaseVaultAuthority extends string, TAccountOldPositionMintOrBaseVaultAuthority extends string, TAccountOldPositionTokenAccountOrBaseVaultAuthority extends string, TAccountOldTickArrayLowerOrBaseVaultAuthority extends string, TAccountOldTickArrayUpperOrBaseVaultAuthority extends string, TAccountPool extends string, TAccountTokenAVault extends string, TAccountTokenBVault extends string, TAccountUserTokenAAta extends string, TAccountUserTokenBAta extends string, TAccountTokenAMint extends string, TAccountTokenBMint extends string, TAccountReward0Vault extends string, TAccountReward1Vault extends string, TAccountReward2Vault extends string, TAccountKaminoReward0Vault extends string, TAccountKaminoReward1Vault extends string, TAccountKaminoReward2Vault extends string, TAccountUserReward0Ata extends string, TAccountUserReward1Ata extends string, TAccountUserReward2Ata extends string, TAccountUserKaminoReward0Ata extends string, TAccountUserKaminoReward1Ata extends string, TAccountUserKaminoReward2Ata extends string, TAccountBaseVaultAuthority extends string, TAccountPoolProgram extends string, TAccountTokenProgram extends string, TAccountTokenATokenProgram extends string, TAccountTokenBTokenProgram extends string, TAccountSystem extends string, TAccountEventAuthority extends string, TProgramAddress extends Address = typeof YVAULTS_PROGRAM_ADDRESS>(input: CloseStrategyInput<TAccountAdminAuthority, TAccountStrategy, TAccountOldPositionOrBaseVaultAuthority, TAccountOldPositionMintOrBaseVaultAuthority, TAccountOldPositionTokenAccountOrBaseVaultAuthority, TAccountOldTickArrayLowerOrBaseVaultAuthority, TAccountOldTickArrayUpperOrBaseVaultAuthority, TAccountPool, TAccountTokenAVault, TAccountTokenBVault, TAccountUserTokenAAta, TAccountUserTokenBAta, TAccountTokenAMint, TAccountTokenBMint, TAccountReward0Vault, TAccountReward1Vault, TAccountReward2Vault, TAccountKaminoReward0Vault, TAccountKaminoReward1Vault, TAccountKaminoReward2Vault, TAccountUserReward0Ata, TAccountUserReward1Ata, TAccountUserReward2Ata, TAccountUserKaminoReward0Ata, TAccountUserKaminoReward1Ata, TAccountUserKaminoReward2Ata, TAccountBaseVaultAuthority, TAccountPoolProgram, TAccountTokenProgram, TAccountTokenATokenProgram, TAccountTokenBTokenProgram, TAccountSystem, TAccountEventAuthority>, config?: {
    programAddress?: TProgramAddress;
}): CloseStrategyInstruction<TProgramAddress, TAccountAdminAuthority, TAccountStrategy, TAccountOldPositionOrBaseVaultAuthority, TAccountOldPositionMintOrBaseVaultAuthority, TAccountOldPositionTokenAccountOrBaseVaultAuthority, TAccountOldTickArrayLowerOrBaseVaultAuthority, TAccountOldTickArrayUpperOrBaseVaultAuthority, TAccountPool, TAccountTokenAVault, TAccountTokenBVault, TAccountUserTokenAAta, TAccountUserTokenBAta, TAccountTokenAMint, TAccountTokenBMint, TAccountReward0Vault, TAccountReward1Vault, TAccountReward2Vault, TAccountKaminoReward0Vault, TAccountKaminoReward1Vault, TAccountKaminoReward2Vault, TAccountUserReward0Ata, TAccountUserReward1Ata, TAccountUserReward2Ata, TAccountUserKaminoReward0Ata, TAccountUserKaminoReward1Ata, TAccountUserKaminoReward2Ata, TAccountBaseVaultAuthority, TAccountPoolProgram, TAccountTokenProgram, TAccountTokenATokenProgram, TAccountTokenBTokenProgram, TAccountSystem, TAccountEventAuthority>;
export type ParsedCloseStrategyInstruction<TProgram extends string = typeof YVAULTS_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        adminAuthority: TAccountMetas[0];
        strategy: TAccountMetas[1];
        oldPositionOrBaseVaultAuthority: TAccountMetas[2];
        oldPositionMintOrBaseVaultAuthority: TAccountMetas[3];
        oldPositionTokenAccountOrBaseVaultAuthority: TAccountMetas[4];
        oldTickArrayLowerOrBaseVaultAuthority: TAccountMetas[5];
        oldTickArrayUpperOrBaseVaultAuthority: TAccountMetas[6];
        pool: TAccountMetas[7];
        tokenAVault: TAccountMetas[8];
        tokenBVault: TAccountMetas[9];
        userTokenAAta: TAccountMetas[10];
        userTokenBAta: TAccountMetas[11];
        tokenAMint: TAccountMetas[12];
        tokenBMint: TAccountMetas[13];
        /** If rewards are uninitialized, pass this as strategy. */
        reward0Vault: TAccountMetas[14];
        /** If rewards are uninitialized, pass this as strategy. */
        reward1Vault: TAccountMetas[15];
        /** If rewards are uninitialized, pass this as strategy. */
        reward2Vault: TAccountMetas[16];
        /** If rewards are uninitialized, pass this as strategy. */
        kaminoReward0Vault: TAccountMetas[17];
        /** If rewards are uninitialized, pass this as strategy. */
        kaminoReward1Vault: TAccountMetas[18];
        /** If rewards are uninitialized, pass this as strategy. */
        kaminoReward2Vault: TAccountMetas[19];
        /** If rewards are uninitialized, pass this as strategy. */
        userReward0Ata: TAccountMetas[20];
        /** If rewards are uninitialized, pass this as strategy. */
        userReward1Ata: TAccountMetas[21];
        /** If rewards are uninitialized, pass this as strategy. */
        userReward2Ata: TAccountMetas[22];
        /** If rewards are uninitialized, pass this as strategy. */
        userKaminoReward0Ata: TAccountMetas[23];
        /** If rewards are uninitialized, pass this as strategy. */
        userKaminoReward1Ata: TAccountMetas[24];
        /** If rewards are uninitialized, pass this as strategy. */
        userKaminoReward2Ata: TAccountMetas[25];
        baseVaultAuthority: TAccountMetas[26];
        poolProgram: TAccountMetas[27];
        tokenProgram: TAccountMetas[28];
        tokenATokenProgram: TAccountMetas[29];
        tokenBTokenProgram: TAccountMetas[30];
        system: TAccountMetas[31];
        eventAuthority?: TAccountMetas[32] | undefined;
    };
    data: CloseStrategyInstructionData;
};
export declare function parseCloseStrategyInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedCloseStrategyInstruction<TProgram, TAccountMetas>;
//# sourceMappingURL=closeStrategy.d.ts.map