import BN from 'bn.js'; import { KaminoReserve } from '../classes/reserve'; /** * Base class for reserve kind identification. * Since a market can have multiple reserves for the same mint (with different terms), * this kind specifies which reserve to select. */ export declare abstract class ReserveKind { /** * Checks if a reserve matches this reserve kind's criteria */ abstract matches(reserve: KaminoReserve): boolean; /** * Returns a human-readable string representation */ abstract toString(): string; /** * Type check: returns true if this is an open-term reserve */ abstract isFloatRate(): boolean; /** * Type check: returns true if this is a fixed-term reserve */ abstract isFixedRate(): boolean; /** * Type check: returns true if this is a maturity-timestamp reserve */ abstract isMaturityTimestampKind(): boolean; } /** * Represents an open-term reserve with no fixed maturity. */ export declare class FloatRateReserveKind extends ReserveKind { /** * Checks if a reserve matches this open-term reserve kind */ matches(reserve: KaminoReserve): boolean; toString(): string; isFloatRate(): boolean; isFixedRate(): boolean; isMaturityTimestampKind(): boolean; } /** * Represents a fixed-term reserve with specific loan parameters. */ export declare class FixedRateReserveKind extends ReserveKind { readonly debtTermSeconds: BN; readonly borrowRateBps: number; /** * @param debtTermSeconds The debt term in seconds (e.g., new BN(30 * 24 * 60 * 60) for 30 days) * @param borrowRateBps The maximum borrow rate in basis points (e.g., 500 for 5%) */ constructor(debtTermSeconds: BN, borrowRateBps: number); /** * Checks if a reserve matches this fixed-term reserve kind */ matches(reserve: KaminoReserve): boolean; toString(): string; isFloatRate(): boolean; isFixedRate(): boolean; isMaturityTimestampKind(): boolean; } /** * Represents a reserve with a fixed maturity timestamp at which all debts become liquidatable. */ export declare class MaturityTimestampReserveKind extends ReserveKind { readonly debtMaturityTimestamp: BN; /** * @param debtMaturityTimestamp The unix timestamp at which all debts from this reserve become liquidatable */ constructor(debtMaturityTimestamp: BN); /** * Checks if a reserve matches this maturity timestamp reserve kind */ matches(reserve: KaminoReserve): boolean; toString(): string; isFloatRate(): boolean; isFixedRate(): boolean; isMaturityTimestampKind(): boolean; } //# sourceMappingURL=ReserveKind.d.ts.map