import { AccountMeta, AddressLookupTableAccount, Connection, PublicKey } from "@solana/web3.js"; import { U64_MAX_BN as U64_MAX } from "../../utils/common"; export { JUPITER_BORROW_PROTOCOL, JUPITER_EARN_PROTOCOL, } from "../../protocols"; export type JupiterTransferType = { skip: Record; } | { direct: Record; } | { claim: Record; }; export declare const PUBKEY_BYTES = 32; export { U64_MAX }; export declare const LENDING_DISCRIMINATOR: Buffer; export declare const TOKEN_RESERVE_DISCRIMINATOR: Buffer; export declare const VAULT_STATE_DISCRIMINATOR: Buffer; export declare const VAULT_CONFIG_DISCRIMINATOR: Buffer; export declare const VAULT_METADATA_DISCRIMINATOR: Buffer; export declare const POSITION_DISCRIMINATOR: Buffer; export declare const ORACLE_DISCRIMINATOR: Buffer; export declare const TICK_DISCRIMINATOR: Buffer; export declare const TICK_ID_LIQUIDATION_DISCRIMINATOR: Buffer; export declare const LIQUIDITY_SUPPLY_POSITION_DISCRIMINATOR: Buffer; export declare const LIQUIDITY_BORROW_POSITION_DISCRIMINATOR: Buffer; export declare const LENDING_REWARDS_RATE_MODEL_OFFSET: number; export declare const LENDING_TOKEN_RESERVES_LIQUIDITY_OFFSET: number; export declare const LENDING_SUPPLY_POSITION_OFFSET: number; export declare const TOKEN_RESERVE_VAULT_OFFSET: number; export declare const VAULT_CONFIG_ORACLE_OFFSET: number; export declare const VAULT_CONFIG_SUPPLY_TOKEN_OFFSET: number; export declare const VAULT_CONFIG_BORROW_TOKEN_OFFSET: number; export declare const VAULT_METADATA_LOOKUP_TABLE_OFFSET: number; export declare const VAULT_STATE_VAULT_ID_OFFSET = 8; export declare const VAULT_STATE_CURRENT_BRANCH_ID_OFFSET: number; export declare const VAULT_STATE_NEXT_POSITION_ID_OFFSET: number; export declare const POSITION_VAULT_ID_OFFSET = 8; export declare const POSITION_MINT_OFFSET: number; export declare const POSITION_IS_SUPPLY_ONLY_OFFSET: number; export declare const POSITION_TICK_OFFSET: number; export declare const POSITION_TICK_ID_OFFSET: number; export declare const ORACLE_SOURCE_BYTES: number; export declare const TICK_VALUE_OFFSET: number; export declare const TICK_TOTAL_IDS_OFFSET: number; export declare const TICK_ID_VALUE_OFFSET: number; export declare const TICK_ID_MAP_OFFSET: number; export declare const MIN_TICK = -16383; export declare const TICKS_PER_TICK_HAS_DEBT_ARRAY = 2048; export declare const LIQUIDITY_POSITION_VAULT_CONFIG_OFFSET = 8; export declare const LIQUIDITY_POSITION_MINT_OFFSET: number; export declare const LIQUIDITY_SUPPLY_POSITION_SIZE = 124; export declare const LIQUIDITY_BORROW_POSITION_SIZE = 120; export declare const BORROW_OPERATE_EXPECTED_TICK_RE: RegExp; export type JupiterPosition = { pubkey: PublicKey; vaultId: number; positionMint: PublicKey; isSupplyOnlyPosition: boolean; tick: number; tickId: number; }; export type JupiterVault = { vaultId: number; vaultConfig: PublicKey; vaultState: PublicKey; oracle: PublicKey; supplyToken: PublicKey; borrowToken: PublicKey; }; export type VaultStateInfo = { vaultId: number; currentBranchId: number; nextPositionId: number; }; export type TickInfo = { pubkey: PublicKey; tick: number; totalIds: number; }; export type BorrowOperateRemainingAccounts = { indices: Buffer; accounts: AccountMeta[]; }; export declare function decodePositionInfo(pubkey: PublicKey, data: Buffer): JupiterPosition; export declare function u16LeBytes(value: number): Buffer; export declare function u32LeBytes(value: number): Buffer; export declare function i32LeBytes(value: number): Buffer; export declare function memcmpFilter(offset: number, data: Buffer): { memcmp: { offset: number; bytes: string; encoding: "base64"; }; }; export declare function toU8Buffer(value: Buffer | Uint8Array | number[]): Buffer; export declare function getTokenMetadataPda(mint: PublicKey): PublicKey; export declare function getLendingAdminPda(): PublicKey; export declare function getFTokenMintPda(mint: PublicKey): PublicKey; export declare function getLendingPda(mint: PublicKey, fTokenMint: PublicKey): PublicKey; export declare function getClaimAccountPda(mint: PublicKey, lendingAdmin: PublicKey): PublicKey; export declare function getRateModelPda(mint: PublicKey): PublicKey; export declare function getLiquidityPda(): PublicKey; export declare function getVaultAdminPda(): PublicKey; export declare function getVaultConfigPda(vaultId: number): PublicKey; export declare function getVaultMetadataPda(vaultId: number): PublicKey; export declare function getVaultStatePda(vaultId: number): PublicKey; export declare function getPositionPda(vaultId: number, positionId: number): PublicKey; export declare function getPositionMintPda(vaultId: number, positionId: number): PublicKey; export declare function getBranchPda(vaultId: number, branchId: number): PublicKey; export declare function getTickHasDebtPda(vaultId: number, index: number): PublicKey; export declare function getTickHasDebtIndex(tick: number): number; export declare function fetchAndValidate(connection: Connection, pubkey: PublicKey, expectedOwner: PublicKey, expectedDiscriminator: Buffer, label: string): Promise; export declare function resolveLookupTableAccounts(connection: Connection, statePda: PublicKey, vaultPda: PublicKey, lookupTable?: PublicKey): Promise; export declare function fetchPositionInfo(connection: Connection, position: PublicKey): Promise; export declare function fetchVaultStateInfo(connection: Connection, vaultState: PublicKey): Promise; export declare function fetchVaultConfigInfo(connection: Connection, vaultConfig: PublicKey): Promise<{ oracle: PublicKey; supplyToken: PublicKey; borrowToken: PublicKey; }>; export declare function fetchVaultMetadataLookupTable(connection: Connection, vaultMetadata: PublicKey): Promise; export declare function fetchReserveVault(connection: Connection, reserve: PublicKey, expectedMint: PublicKey): Promise; export declare function fetchLendingReserveAndVault(connection: Connection, mint: PublicKey): Promise<{ reserve: PublicKey; vault: PublicKey; }>; export declare function fetchLiquidityPosition(connection: Connection, discriminator: Buffer, dataSize: number, vaultConfig: PublicKey, mint: PublicKey, label: string): Promise; export declare function fetchTickByValue(connection: Connection, vaultId: number, tick: number): Promise; export declare function fetchTickIdLiquidationByTick(connection: Connection, vaultId: number, tick: number, tickMap: number): Promise; export declare function resolveOracleRemainingAccounts(connection: Connection, oracle: PublicKey): Promise; export declare function buildBorrowOperateRemainingAccounts(vaultId: number, oracleAccounts: AccountMeta[], currentTickValue: number, finalTickValue: number): BorrowOperateRemainingAccounts;