/**
 * 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 { WHIRLPOOL_PROGRAM_ADDRESS } from '../programs';
export declare const OPEN_POSITION_WITH_METADATA_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getOpenPositionWithMetadataDiscriminatorBytes(): ReadonlyUint8Array;
export type OpenPositionWithMetadataInstruction<TProgram extends string = typeof WHIRLPOOL_PROGRAM_ADDRESS, TAccountFunder extends string | AccountMeta<string> = string, TAccountOwner extends string | AccountMeta<string> = string, TAccountPosition extends string | AccountMeta<string> = string, TAccountPositionMint extends string | AccountMeta<string> = string, TAccountPositionMetadataAccount extends string | AccountMeta<string> = string, TAccountPositionTokenAccount extends string | AccountMeta<string> = string, TAccountWhirlpool extends string | AccountMeta<string> = string, TAccountTokenProgram extends string | AccountMeta<string> = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", TAccountSystemProgram extends string | AccountMeta<string> = "11111111111111111111111111111111", TAccountRent extends string | AccountMeta<string> = "SysvarRent111111111111111111111111111111111", TAccountAssociatedTokenProgram extends string | AccountMeta<string> = string, TAccountMetadataProgram extends string | AccountMeta<string> = string, TAccountMetadataUpdateAuth extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountFunder extends string ? WritableSignerAccount<TAccountFunder> & AccountSignerMeta<TAccountFunder> : TAccountFunder, TAccountOwner extends string ? ReadonlyAccount<TAccountOwner> : TAccountOwner, TAccountPosition extends string ? WritableAccount<TAccountPosition> : TAccountPosition, TAccountPositionMint extends string ? WritableSignerAccount<TAccountPositionMint> & AccountSignerMeta<TAccountPositionMint> : TAccountPositionMint, TAccountPositionMetadataAccount extends string ? WritableAccount<TAccountPositionMetadataAccount> : TAccountPositionMetadataAccount, TAccountPositionTokenAccount extends string ? WritableAccount<TAccountPositionTokenAccount> : TAccountPositionTokenAccount, TAccountWhirlpool extends string ? ReadonlyAccount<TAccountWhirlpool> : TAccountWhirlpool, TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram, TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram, TAccountRent extends string ? ReadonlyAccount<TAccountRent> : TAccountRent, TAccountAssociatedTokenProgram extends string ? ReadonlyAccount<TAccountAssociatedTokenProgram> : TAccountAssociatedTokenProgram, TAccountMetadataProgram extends string ? ReadonlyAccount<TAccountMetadataProgram> : TAccountMetadataProgram, TAccountMetadataUpdateAuth extends string ? ReadonlyAccount<TAccountMetadataUpdateAuth> : TAccountMetadataUpdateAuth, ...TRemainingAccounts]>;
export type OpenPositionWithMetadataInstructionData = {
    discriminator: ReadonlyUint8Array;
    positionBump: number;
    metadataBump: number;
    tickLowerIndex: number;
    tickUpperIndex: number;
};
export type OpenPositionWithMetadataInstructionDataArgs = {
    positionBump: number;
    metadataBump: number;
    tickLowerIndex: number;
    tickUpperIndex: number;
};
export declare function getOpenPositionWithMetadataInstructionDataEncoder(): FixedSizeEncoder<OpenPositionWithMetadataInstructionDataArgs>;
export declare function getOpenPositionWithMetadataInstructionDataDecoder(): FixedSizeDecoder<OpenPositionWithMetadataInstructionData>;
export declare function getOpenPositionWithMetadataInstructionDataCodec(): FixedSizeCodec<OpenPositionWithMetadataInstructionDataArgs, OpenPositionWithMetadataInstructionData>;
export type OpenPositionWithMetadataInput<TAccountFunder extends string = string, TAccountOwner extends string = string, TAccountPosition extends string = string, TAccountPositionMint extends string = string, TAccountPositionMetadataAccount extends string = string, TAccountPositionTokenAccount extends string = string, TAccountWhirlpool extends string = string, TAccountTokenProgram extends string = string, TAccountSystemProgram extends string = string, TAccountRent extends string = string, TAccountAssociatedTokenProgram extends string = string, TAccountMetadataProgram extends string = string, TAccountMetadataUpdateAuth extends string = string> = {
    funder: TransactionSigner<TAccountFunder>;
    owner: Address<TAccountOwner>;
    position: Address<TAccountPosition>;
    positionMint: TransactionSigner<TAccountPositionMint>;
    positionMetadataAccount: Address<TAccountPositionMetadataAccount>;
    positionTokenAccount: Address<TAccountPositionTokenAccount>;
    whirlpool: Address<TAccountWhirlpool>;
    tokenProgram?: Address<TAccountTokenProgram>;
    systemProgram?: Address<TAccountSystemProgram>;
    rent?: Address<TAccountRent>;
    associatedTokenProgram: Address<TAccountAssociatedTokenProgram>;
    metadataProgram: Address<TAccountMetadataProgram>;
    metadataUpdateAuth: Address<TAccountMetadataUpdateAuth>;
    positionBump: OpenPositionWithMetadataInstructionDataArgs["positionBump"];
    metadataBump: OpenPositionWithMetadataInstructionDataArgs["metadataBump"];
    tickLowerIndex: OpenPositionWithMetadataInstructionDataArgs["tickLowerIndex"];
    tickUpperIndex: OpenPositionWithMetadataInstructionDataArgs["tickUpperIndex"];
};
export declare function getOpenPositionWithMetadataInstruction<TAccountFunder extends string, TAccountOwner extends string, TAccountPosition extends string, TAccountPositionMint extends string, TAccountPositionMetadataAccount extends string, TAccountPositionTokenAccount extends string, TAccountWhirlpool extends string, TAccountTokenProgram extends string, TAccountSystemProgram extends string, TAccountRent extends string, TAccountAssociatedTokenProgram extends string, TAccountMetadataProgram extends string, TAccountMetadataUpdateAuth extends string, TProgramAddress extends Address = typeof WHIRLPOOL_PROGRAM_ADDRESS>(input: OpenPositionWithMetadataInput<TAccountFunder, TAccountOwner, TAccountPosition, TAccountPositionMint, TAccountPositionMetadataAccount, TAccountPositionTokenAccount, TAccountWhirlpool, TAccountTokenProgram, TAccountSystemProgram, TAccountRent, TAccountAssociatedTokenProgram, TAccountMetadataProgram, TAccountMetadataUpdateAuth>, config?: {
    programAddress?: TProgramAddress;
}): OpenPositionWithMetadataInstruction<TProgramAddress, TAccountFunder, TAccountOwner, TAccountPosition, TAccountPositionMint, TAccountPositionMetadataAccount, TAccountPositionTokenAccount, TAccountWhirlpool, TAccountTokenProgram, TAccountSystemProgram, TAccountRent, TAccountAssociatedTokenProgram, TAccountMetadataProgram, TAccountMetadataUpdateAuth>;
export type ParsedOpenPositionWithMetadataInstruction<TProgram extends string = typeof WHIRLPOOL_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        funder: TAccountMetas[0];
        owner: TAccountMetas[1];
        position: TAccountMetas[2];
        positionMint: TAccountMetas[3];
        positionMetadataAccount: TAccountMetas[4];
        positionTokenAccount: TAccountMetas[5];
        whirlpool: TAccountMetas[6];
        tokenProgram: TAccountMetas[7];
        systemProgram: TAccountMetas[8];
        rent: TAccountMetas[9];
        associatedTokenProgram: TAccountMetas[10];
        metadataProgram: TAccountMetas[11];
        metadataUpdateAuth: TAccountMetas[12];
    };
    data: OpenPositionWithMetadataInstructionData;
};
export declare function parseOpenPositionWithMetadataInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedOpenPositionWithMetadataInstruction<TProgram, TAccountMetas>;
//# sourceMappingURL=openPositionWithMetadata.d.ts.map