import { Address, IAccountMeta, IInstruction, TransactionSigner } from "@solana/kit";
import BN from "bn.js";
export interface OpenPositionArgs {
    tickLowerIndex: number;
    tickUpperIndex: number;
    tickArrayLowerStartIndex: number;
    tickArrayUpperStartIndex: number;
    liquidity: BN;
    amount0Max: BN;
    amount1Max: BN;
}
export interface OpenPositionAccounts {
    payer: TransactionSigner;
    positionNftOwner: Address;
    positionNftMint: TransactionSigner;
    positionNftAccount: Address;
    metadataAccount: Address;
    poolState: Address;
    protocolPosition: Address;
    tickArrayLower: Address;
    tickArrayUpper: Address;
    personalPosition: Address;
    tokenAccount0: Address;
    tokenAccount1: Address;
    tokenVault0: Address;
    tokenVault1: Address;
    rent: Address;
    systemProgram: Address;
    tokenProgram: Address;
    associatedTokenProgram: Address;
    metadataProgram: Address;
}
export declare const layout: import("buffer-layout").Layout<unknown>;
export declare function openPosition(args: OpenPositionArgs, accounts: OpenPositionAccounts, programAddress?: Address): IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>;
//# sourceMappingURL=openPosition.d.ts.map