/**
 * 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 CHANGE_POOL_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getChangePoolDiscriminatorBytes(): ReadonlyUint8Array<ArrayBuffer>;
export type ChangePoolInstruction<TProgram extends string = typeof YVAULTS_PROGRAM_ADDRESS, TAccountAdminAuthority extends string | AccountMeta<string> = string, TAccountStrategy extends string | AccountMeta<string> = string, TAccountOldPosition extends string | AccountMeta<string> = string, TAccountBaseVaultAuthority extends string | AccountMeta<string> = string, TAccountNewPool extends string | AccountMeta<string> = string, TAccountStrategyRewardVault0OrBaseVaultAuthority extends string | AccountMeta<string> = string, TAccountStrategyRewardVault1OrBaseVaultAuthority extends string | AccountMeta<string> = string, TAccountStrategyRewardVault2OrBaseVaultAuthority 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, TAccountOldPosition extends string ? ReadonlyAccount<TAccountOldPosition> : TAccountOldPosition, TAccountBaseVaultAuthority extends string ? ReadonlyAccount<TAccountBaseVaultAuthority> : TAccountBaseVaultAuthority, TAccountNewPool extends string ? ReadonlyAccount<TAccountNewPool> : TAccountNewPool, TAccountStrategyRewardVault0OrBaseVaultAuthority extends string ? ReadonlyAccount<TAccountStrategyRewardVault0OrBaseVaultAuthority> : TAccountStrategyRewardVault0OrBaseVaultAuthority, TAccountStrategyRewardVault1OrBaseVaultAuthority extends string ? ReadonlyAccount<TAccountStrategyRewardVault1OrBaseVaultAuthority> : TAccountStrategyRewardVault1OrBaseVaultAuthority, TAccountStrategyRewardVault2OrBaseVaultAuthority extends string ? ReadonlyAccount<TAccountStrategyRewardVault2OrBaseVaultAuthority> : TAccountStrategyRewardVault2OrBaseVaultAuthority, ...TRemainingAccounts]>;
export type ChangePoolInstructionData = {
    discriminator: ReadonlyUint8Array;
};
export type ChangePoolInstructionDataArgs = {};
export declare function getChangePoolInstructionDataEncoder(): FixedSizeEncoder<ChangePoolInstructionDataArgs>;
export declare function getChangePoolInstructionDataDecoder(): FixedSizeDecoder<ChangePoolInstructionData>;
export declare function getChangePoolInstructionDataCodec(): FixedSizeCodec<ChangePoolInstructionDataArgs, ChangePoolInstructionData>;
export type ChangePoolInput<TAccountAdminAuthority extends string = string, TAccountStrategy extends string = string, TAccountOldPosition extends string = string, TAccountBaseVaultAuthority extends string = string, TAccountNewPool extends string = string, TAccountStrategyRewardVault0OrBaseVaultAuthority extends string = string, TAccountStrategyRewardVault1OrBaseVaultAuthority extends string = string, TAccountStrategyRewardVault2OrBaseVaultAuthority extends string = string> = {
    adminAuthority: TransactionSigner<TAccountAdminAuthority>;
    strategy: Address<TAccountStrategy>;
    oldPosition: Address<TAccountOldPosition>;
    baseVaultAuthority: Address<TAccountBaseVaultAuthority>;
    newPool: Address<TAccountNewPool>;
    strategyRewardVault0OrBaseVaultAuthority: Address<TAccountStrategyRewardVault0OrBaseVaultAuthority>;
    strategyRewardVault1OrBaseVaultAuthority: Address<TAccountStrategyRewardVault1OrBaseVaultAuthority>;
    strategyRewardVault2OrBaseVaultAuthority: Address<TAccountStrategyRewardVault2OrBaseVaultAuthority>;
};
export declare function getChangePoolInstruction<TAccountAdminAuthority extends string, TAccountStrategy extends string, TAccountOldPosition extends string, TAccountBaseVaultAuthority extends string, TAccountNewPool extends string, TAccountStrategyRewardVault0OrBaseVaultAuthority extends string, TAccountStrategyRewardVault1OrBaseVaultAuthority extends string, TAccountStrategyRewardVault2OrBaseVaultAuthority extends string, TProgramAddress extends Address = typeof YVAULTS_PROGRAM_ADDRESS>(input: ChangePoolInput<TAccountAdminAuthority, TAccountStrategy, TAccountOldPosition, TAccountBaseVaultAuthority, TAccountNewPool, TAccountStrategyRewardVault0OrBaseVaultAuthority, TAccountStrategyRewardVault1OrBaseVaultAuthority, TAccountStrategyRewardVault2OrBaseVaultAuthority>, config?: {
    programAddress?: TProgramAddress;
}): ChangePoolInstruction<TProgramAddress, TAccountAdminAuthority, TAccountStrategy, TAccountOldPosition, TAccountBaseVaultAuthority, TAccountNewPool, TAccountStrategyRewardVault0OrBaseVaultAuthority, TAccountStrategyRewardVault1OrBaseVaultAuthority, TAccountStrategyRewardVault2OrBaseVaultAuthority>;
export type ParsedChangePoolInstruction<TProgram extends string = typeof YVAULTS_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        adminAuthority: TAccountMetas[0];
        strategy: TAccountMetas[1];
        oldPosition: TAccountMetas[2];
        baseVaultAuthority: TAccountMetas[3];
        newPool: TAccountMetas[4];
        strategyRewardVault0OrBaseVaultAuthority: TAccountMetas[5];
        strategyRewardVault1OrBaseVaultAuthority: TAccountMetas[6];
        strategyRewardVault2OrBaseVaultAuthority: TAccountMetas[7];
    };
    data: ChangePoolInstructionData;
};
export declare function parseChangePoolInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedChangePoolInstruction<TProgram, TAccountMetas>;
//# sourceMappingURL=changePool.d.ts.map