/**
 * 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 ReadonlySignerAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount } from '@solana/kit';
import { AMM_V3_PROGRAM_ADDRESS } from '../programs';
export declare const DECREASE_LIQUIDITY_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getDecreaseLiquidityDiscriminatorBytes(): ReadonlyUint8Array;
export type DecreaseLiquidityInstruction<TProgram extends string = typeof AMM_V3_PROGRAM_ADDRESS, TAccountNftOwner extends string | AccountMeta<string> = string, TAccountNftAccount extends string | AccountMeta<string> = string, TAccountPersonalPosition extends string | AccountMeta<string> = string, TAccountPoolState extends string | AccountMeta<string> = string, TAccountProtocolPosition extends string | AccountMeta<string> = string, TAccountTokenVault0 extends string | AccountMeta<string> = string, TAccountTokenVault1 extends string | AccountMeta<string> = string, TAccountTickArrayLower extends string | AccountMeta<string> = string, TAccountTickArrayUpper extends string | AccountMeta<string> = string, TAccountRecipientTokenAccount0 extends string | AccountMeta<string> = string, TAccountRecipientTokenAccount1 extends string | AccountMeta<string> = string, TAccountTokenProgram extends string | AccountMeta<string> = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountNftOwner extends string ? ReadonlySignerAccount<TAccountNftOwner> & AccountSignerMeta<TAccountNftOwner> : TAccountNftOwner, TAccountNftAccount extends string ? ReadonlyAccount<TAccountNftAccount> : TAccountNftAccount, TAccountPersonalPosition extends string ? WritableAccount<TAccountPersonalPosition> : TAccountPersonalPosition, TAccountPoolState extends string ? WritableAccount<TAccountPoolState> : TAccountPoolState, TAccountProtocolPosition extends string ? WritableAccount<TAccountProtocolPosition> : TAccountProtocolPosition, TAccountTokenVault0 extends string ? WritableAccount<TAccountTokenVault0> : TAccountTokenVault0, TAccountTokenVault1 extends string ? WritableAccount<TAccountTokenVault1> : TAccountTokenVault1, TAccountTickArrayLower extends string ? WritableAccount<TAccountTickArrayLower> : TAccountTickArrayLower, TAccountTickArrayUpper extends string ? WritableAccount<TAccountTickArrayUpper> : TAccountTickArrayUpper, TAccountRecipientTokenAccount0 extends string ? WritableAccount<TAccountRecipientTokenAccount0> : TAccountRecipientTokenAccount0, TAccountRecipientTokenAccount1 extends string ? WritableAccount<TAccountRecipientTokenAccount1> : TAccountRecipientTokenAccount1, TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram, ...TRemainingAccounts]>;
export type DecreaseLiquidityInstructionData = {
    discriminator: ReadonlyUint8Array;
    liquidity: bigint;
    amount0Min: bigint;
    amount1Min: bigint;
};
export type DecreaseLiquidityInstructionDataArgs = {
    liquidity: number | bigint;
    amount0Min: number | bigint;
    amount1Min: number | bigint;
};
export declare function getDecreaseLiquidityInstructionDataEncoder(): FixedSizeEncoder<DecreaseLiquidityInstructionDataArgs>;
export declare function getDecreaseLiquidityInstructionDataDecoder(): FixedSizeDecoder<DecreaseLiquidityInstructionData>;
export declare function getDecreaseLiquidityInstructionDataCodec(): FixedSizeCodec<DecreaseLiquidityInstructionDataArgs, DecreaseLiquidityInstructionData>;
export type DecreaseLiquidityInput<TAccountNftOwner extends string = string, TAccountNftAccount extends string = string, TAccountPersonalPosition extends string = string, TAccountPoolState extends string = string, TAccountProtocolPosition extends string = string, TAccountTokenVault0 extends string = string, TAccountTokenVault1 extends string = string, TAccountTickArrayLower extends string = string, TAccountTickArrayUpper extends string = string, TAccountRecipientTokenAccount0 extends string = string, TAccountRecipientTokenAccount1 extends string = string, TAccountTokenProgram extends string = string> = {
    nftOwner: TransactionSigner<TAccountNftOwner>;
    nftAccount: Address<TAccountNftAccount>;
    personalPosition: Address<TAccountPersonalPosition>;
    poolState: Address<TAccountPoolState>;
    protocolPosition: Address<TAccountProtocolPosition>;
    tokenVault0: Address<TAccountTokenVault0>;
    tokenVault1: Address<TAccountTokenVault1>;
    tickArrayLower: Address<TAccountTickArrayLower>;
    tickArrayUpper: Address<TAccountTickArrayUpper>;
    recipientTokenAccount0: Address<TAccountRecipientTokenAccount0>;
    recipientTokenAccount1: Address<TAccountRecipientTokenAccount1>;
    tokenProgram?: Address<TAccountTokenProgram>;
    liquidity: DecreaseLiquidityInstructionDataArgs["liquidity"];
    amount0Min: DecreaseLiquidityInstructionDataArgs["amount0Min"];
    amount1Min: DecreaseLiquidityInstructionDataArgs["amount1Min"];
};
export declare function getDecreaseLiquidityInstruction<TAccountNftOwner extends string, TAccountNftAccount extends string, TAccountPersonalPosition extends string, TAccountPoolState extends string, TAccountProtocolPosition extends string, TAccountTokenVault0 extends string, TAccountTokenVault1 extends string, TAccountTickArrayLower extends string, TAccountTickArrayUpper extends string, TAccountRecipientTokenAccount0 extends string, TAccountRecipientTokenAccount1 extends string, TAccountTokenProgram extends string, TProgramAddress extends Address = typeof AMM_V3_PROGRAM_ADDRESS>(input: DecreaseLiquidityInput<TAccountNftOwner, TAccountNftAccount, TAccountPersonalPosition, TAccountPoolState, TAccountProtocolPosition, TAccountTokenVault0, TAccountTokenVault1, TAccountTickArrayLower, TAccountTickArrayUpper, TAccountRecipientTokenAccount0, TAccountRecipientTokenAccount1, TAccountTokenProgram>, config?: {
    programAddress?: TProgramAddress;
}): DecreaseLiquidityInstruction<TProgramAddress, TAccountNftOwner, TAccountNftAccount, TAccountPersonalPosition, TAccountPoolState, TAccountProtocolPosition, TAccountTokenVault0, TAccountTokenVault1, TAccountTickArrayLower, TAccountTickArrayUpper, TAccountRecipientTokenAccount0, TAccountRecipientTokenAccount1, TAccountTokenProgram>;
export type ParsedDecreaseLiquidityInstruction<TProgram extends string = typeof AMM_V3_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        nftOwner: TAccountMetas[0];
        nftAccount: TAccountMetas[1];
        personalPosition: TAccountMetas[2];
        poolState: TAccountMetas[3];
        protocolPosition: TAccountMetas[4];
        tokenVault0: TAccountMetas[5];
        tokenVault1: TAccountMetas[6];
        tickArrayLower: TAccountMetas[7];
        tickArrayUpper: TAccountMetas[8];
        recipientTokenAccount0: TAccountMetas[9];
        recipientTokenAccount1: TAccountMetas[10];
        tokenProgram: TAccountMetas[11];
    };
    data: DecreaseLiquidityInstructionData;
};
export declare function parseDecreaseLiquidityInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedDecreaseLiquidityInstruction<TProgram, TAccountMetas>;
//# sourceMappingURL=decreaseLiquidity.d.ts.map