/** * Listen to real-time reserve changes via WebSocket. * * Returns raw {@link Reserve} (not KaminoReserve) — KaminoReserve needs * oracle prices and an RPC connection that aren't available from the WS * notification alone. The consumer hydrates using its market context. */ import { type Address, type Commitment, type Slot } from '@solana/kit'; import { Reserve } from '../@codegen/klend/accounts'; import { type AccountSubscriptionManager, type ProgramFilter } from './accountSubscriptionManager'; import type { SubscriptionHandle } from './subscriptionHandle'; import type { UpdateScheduler } from './wsUpdateScheduler'; export interface ReserveChangeEvent { reserve: Reserve; address: Address; slot: Slot; } export type ReserveChangeCallback = (event: ReserveChangeEvent) => void; export interface ReserveListenerParams { manager: AccountSubscriptionManager; marketAddress: Address; onChange: ReserveChangeCallback; onError?: (error: unknown) => void; programId?: Address; /** Defaults to 'confirmed' — reserves update every slot, throttling * prevents excessive re-renders. */ commitment?: Commitment; throttleMs?: number; /** Requires `throttleMs`. */ scheduler?: UpdateScheduler; } export declare function buildReserveFilters(marketAddress: Address): ProgramFilter[]; export declare function listenToReserveChanges(params: ReserveListenerParams): SubscriptionHandle; //# sourceMappingURL=reserveListener.d.ts.map