import { Commitment, Connection, PublicKey } from "@solana/web3.js"; /** * Categorized external positions by protocol type. */ export interface CategorizedPositions { /** Kamino lending obligation accounts */ kaminoObligations: PublicKey[]; /** Kamino vault share token accounts */ kaminoVaultShareAtas: PublicKey[]; /** Orca Whirlpools position PDA accounts */ orcaWhirlpoolPositions: PublicKey[]; /** Positions that couldn't be categorized */ unknown: PublicKey[]; } /** * Utility class for categorizing external positions by protocol type. * * External positions in GLAM vaults can be: * - Kamino obligation accounts (lending positions) * - Kamino vault share ATAs (shares in kamino vaults) * * This class determines the type of each position to enable proper pricing. */ export declare class PositionCategorizer { private readonly connection; constructor(connection: Connection, _vaultPda?: PublicKey); /** * Categorizes external positions by protocol type. * * Algorithm: * 1. Batch fetch positions * 2. Categorize based on account owner and size * * @param externalPositions - Array of external position pubkeys from state account * @returns Categorized positions by protocol type */ categorizePositions(externalPositions: PublicKey[], commitment: Commitment): Promise; }