import type { BigNumberish, PublicKeyish } from './generated/protocol_types.js'; export declare const SERIES_MODE_REWARD = 0; export declare const SERIES_MODE_PROTECTION = 1; export declare const SERIES_MODE_REIMBURSEMENT = 2; export declare const SERIES_MODE_PARAMETRIC = 3; export declare const SERIES_MODE_OTHER = 255; export declare const SERIES_STATUS_DRAFT = 0; export declare const SERIES_STATUS_ACTIVE = 1; export declare const SERIES_STATUS_PAUSED = 2; export declare const SERIES_STATUS_CLOSED = 3; export declare const FUNDING_LINE_TYPE_SPONSOR_BUDGET = 0; export declare const FUNDING_LINE_TYPE_PREMIUM_INCOME = 1; export declare const FUNDING_LINE_TYPE_LIQUIDITY_POOL_ALLOCATION = 2; export declare const FUNDING_LINE_TYPE_BACKSTOP = 3; export declare const FUNDING_LINE_TYPE_SUBSIDY = 4; export declare const FUNDING_LINE_STATUS_OPEN = 0; export declare const FUNDING_LINE_STATUS_PAUSED = 1; export declare const FUNDING_LINE_STATUS_CLOSED = 2; export declare const RESERVE_ASSET_ROLE_PRIMARY_STABLE = 0; export declare const RESERVE_ASSET_ROLE_SECONDARY_STABLE = 1; export declare const RESERVE_ASSET_ROLE_VOLATILE_COLLATERAL = 2; export declare const RESERVE_ASSET_ROLE_TREASURY_LAST_RESORT = 3; export declare const RESERVE_ORACLE_SOURCE_NONE = 0; export declare const RESERVE_ORACLE_SOURCE_CHAINLINK_DATA_STREAM = 1; export declare const RESERVE_ORACLE_SOURCE_CHAINLINK_DATA_FEED = 2; export declare const RESERVE_ORACLE_SOURCE_GOVERNANCE_ATTESTED = 3; export declare const ELIGIBILITY_PENDING = 0; export declare const ELIGIBILITY_ELIGIBLE = 1; export declare const ELIGIBILITY_PAUSED = 2; export declare const ELIGIBILITY_CLOSED = 3; export declare const MEMBERSHIP_MODE_OPEN = 0; export declare const MEMBERSHIP_MODE_TOKEN_GATE = 1; export declare const MEMBERSHIP_MODE_INVITE_ONLY = 2; export declare const MEMBERSHIP_GATE_KIND_OPEN = 0; export declare const MEMBERSHIP_GATE_KIND_INVITE_ONLY = 1; export declare const MEMBERSHIP_GATE_KIND_NFT_ANCHOR = 2; export declare const MEMBERSHIP_GATE_KIND_STAKE_ANCHOR = 3; export declare const MEMBERSHIP_GATE_KIND_FUNGIBLE_SNAPSHOT = 4; export declare const MEMBERSHIP_PROOF_MODE_OPEN = 0; export declare const MEMBERSHIP_PROOF_MODE_TOKEN_GATE = 1; export declare const MEMBERSHIP_PROOF_MODE_INVITE_PERMIT = 2; export declare const CLAIM_INTAKE_OPEN = 0; export declare const CLAIM_INTAKE_UNDER_REVIEW = 1; export declare const CLAIM_INTAKE_APPROVED = 2; export declare const CLAIM_INTAKE_DENIED = 3; export declare const CLAIM_INTAKE_SETTLED = 4; export declare const CLAIM_INTAKE_CLOSED = 5; export declare const CLAIM_ATTESTATION_DECISION_SUPPORT_APPROVE = 0; export declare const CLAIM_ATTESTATION_DECISION_SUPPORT_DENY = 1; export declare const CLAIM_ATTESTATION_DECISION_REQUEST_REVIEW = 2; export declare const CLAIM_ATTESTATION_DECISION_ABSTAIN = 3; export declare const POOL_ORACLE_PERMISSION_ATTEST_CLAIM: number; export declare const OBLIGATION_STATUS_PROPOSED = 0; export declare const OBLIGATION_STATUS_RESERVED = 1; export declare const OBLIGATION_STATUS_CLAIMABLE_PAYABLE = 2; export declare const OBLIGATION_STATUS_SETTLED = 3; export declare const OBLIGATION_STATUS_CANCELED = 4; export declare const OBLIGATION_STATUS_IMPAIRED = 5; export declare const OBLIGATION_STATUS_RECOVERED = 6; export declare const OBLIGATION_DELIVERY_MODE_CLAIMABLE = 0; export declare const OBLIGATION_DELIVERY_MODE_PAYABLE = 1; export declare const REDEMPTION_POLICY_OPEN = 0; export declare const REDEMPTION_POLICY_QUEUE_ONLY = 1; export declare const REDEMPTION_POLICY_PAUSED = 2; export declare const CAPITAL_CLASS_RESTRICTION_OPEN = 0; export declare const CAPITAL_CLASS_RESTRICTION_RESTRICTED = 1; export declare const CAPITAL_CLASS_RESTRICTION_WRAPPER_ONLY = 2; export declare const LP_QUEUE_STATUS_NONE = 0; export declare const LP_QUEUE_STATUS_PENDING = 1; export declare const LP_QUEUE_STATUS_PROCESSED = 2; export declare const PAUSE_FLAG_PROTOCOL_EMERGENCY: number; export declare const PAUSE_FLAG_DOMAIN_RAILS: number; export declare const PAUSE_FLAG_PLAN_OPERATIONS: number; export declare const PAUSE_FLAG_CLAIM_INTAKE: number; export declare const PAUSE_FLAG_CAPITAL_SUBSCRIPTIONS: number; export declare const PAUSE_FLAG_REDEMPTION_QUEUE_ONLY: number; export declare const PAUSE_FLAG_ORACLE_FINALITY_HOLD: number; export declare const PAUSE_FLAG_ALLOCATION_FREEZE: number; export declare const ORACLE_TYPE_LAB = 0; export declare const ORACLE_TYPE_HOSPITAL_CLINIC = 1; export declare const ORACLE_TYPE_HEALTH_APP = 2; export declare const ORACLE_TYPE_WEARABLE_DATA_PROVIDER = 3; export declare const ORACLE_TYPE_OTHER = 255; export declare const SCHEMA_FAMILY_KERNEL = 0; export declare const SCHEMA_FAMILY_CLINICAL = 1; export declare const SCHEMA_FAMILY_CLAIMS_CODING = 2; export declare const SCHEMA_VISIBILITY_PUBLIC = 0; export declare const SCHEMA_VISIBILITY_PRIVATE = 1; export declare const SCHEMA_VISIBILITY_RESTRICTED = 2; export declare const NATIVE_SOL_MINT = "So11111111111111111111111111111111111111112"; export type NormalizedReserveBalanceSheet = { funded: bigint; allocated: bigint; reserved: bigint; owed: bigint; claimable: bigint; payable: bigint; settled: bigint; impaired: bigint; pendingRedemption: bigint; restricted: bigint; free: bigint; redeemable: bigint; }; export type PartialReserveBalanceSheet = Partial & { pending_redemption?: BigNumberish; }; export type ReserveScopedSnapshot = { address: string; reserveDomain: string; assetMint: string; sheet?: PartialReserveBalanceSheet; }; export type ReserveDomainSnapshot = { address: string; domainId: string; displayName: string; settlementMode: number; active: boolean; pauseFlags?: number; }; export type HealthPlanSnapshot = { address: string; reserveDomain: string; planId: string; displayName: string; sponsorLabel: string; planAdmin: string; sponsorOperator: string; claimsOperator: string; membershipModel: string; pauseFlags?: number; active: boolean; }; export type PolicySeriesSnapshot = { address: string; healthPlan: string; seriesId: string; displayName: string; mode: number; status: number; assetMint: string; termsVersion: string; comparabilityKey: string; }; export type MemberPositionSnapshot = { address: string; wallet: string; healthPlan: string; policySeries: string; eligibilityStatus: number; delegatedRights: string[]; active: boolean; }; export type FundingLineSnapshot = { address: string; reserveDomain: string; healthPlan: string; policySeries?: string | null; assetMint: string; lineId: string; displayName: string; lineType: number; fundingPriority: number; fundedAmount: BigNumberish; reservedAmount?: BigNumberish; spentAmount?: BigNumberish; releasedAmount?: BigNumberish; returnedAmount?: BigNumberish; status: number; sheet?: PartialReserveBalanceSheet; }; export type ClaimCaseSnapshot = { address: string; reserveDomain: string; healthPlan: string; policySeries?: string | null; fundingLine: string; memberPosition: string; claimant: string; claimId: string; intakeStatus: number; approvedAmount: BigNumberish; deniedAmount?: BigNumberish; paidAmount?: BigNumberish; reservedAmount?: BigNumberish; linkedObligation?: string | null; }; export type ObligationSnapshot = { address: string; reserveDomain: string; assetMint: string; healthPlan: string; policySeries?: string | null; memberWallet?: string | null; beneficiary?: string | null; fundingLine: string; claimCase?: string | null; liquidityPool?: string | null; capitalClass?: string | null; allocationPosition?: string | null; obligationId: string; status: number; deliveryMode: number; principalAmount: BigNumberish; outstandingAmount?: BigNumberish; reservedAmount?: BigNumberish; claimableAmount?: BigNumberish; payableAmount?: BigNumberish; settledAmount?: BigNumberish; impairedAmount?: BigNumberish; recoveredAmount?: BigNumberish; }; export type LiquidityPoolSnapshot = { address: string; reserveDomain: string; poolId: string; displayName: string; depositAssetMint: string; strategyThesis: string; redemptionPolicy: number; totalValueLocked: BigNumberish; totalAllocated?: BigNumberish; totalPendingRedemptions?: BigNumberish; active: boolean; }; export type CapitalClassSnapshot = { address: string; liquidityPool: string; classId: string; displayName: string; priority: number; restrictionMode: number; totalShares: BigNumberish; navAssets: BigNumberish; allocatedAssets?: BigNumberish; pendingRedemptions?: BigNumberish; minLockupSeconds?: number; queueOnlyRedemptions?: boolean; active: boolean; }; export type PoolClassLedgerSnapshot = { address: string; capitalClass: string; assetMint: string; sheet: PartialReserveBalanceSheet; totalShares: BigNumberish; realizedYieldAmount?: BigNumberish; realizedLossAmount?: BigNumberish; }; export type LPPositionSnapshot = { address: string; owner: string; capitalClass: string; shares: BigNumberish; subscriptionBasis: BigNumberish; pendingRedemptionShares?: BigNumberish; realizedDistributions?: BigNumberish; impairedPrincipal?: BigNumberish; lockupEndsAt?: number; credentialed?: boolean; queueStatus?: number; }; export type AllocationPositionSnapshot = { address: string; reserveDomain: string; liquidityPool: string; capitalClass: string; healthPlan: string; policySeries?: string | null; fundingLine: string; capAmount: BigNumberish; weightBps: number; allocatedAmount?: BigNumberish; utilizedAmount?: BigNumberish; reservedCapacity?: BigNumberish; realizedPnl?: BigNumberish; impairedAmount?: BigNumberish; deallocationOnly?: boolean; active: boolean; }; export type AllocationLedgerSnapshot = { address: string; allocationPosition: string; assetMint: string; sheet: PartialReserveBalanceSheet; realizedPnl?: BigNumberish; }; export type SponsorReadModel = { healthPlanAddress: string; planId: string; fundedSponsorBudget: bigint; remainingSponsorBudget: bigint; accruedRewards: bigint; paidRewards: bigint; reserveCoverageBps: bigint | null; claimCounts: Record; budgetBurn: bigint; perSeriesPerformance: Array<{ policySeries: string; seriesId: string; mode: string; obligations: number; settled: bigint; reserved: bigint; claimCount: number; approvedClaims: bigint; paidClaims: bigint; costPerOutcome: bigint | null; }>; }; export type CapitalReadModel = { liquidityPoolAddress: string; poolId: string; totalNav: bigint; totalAllocated: bigint; totalUnallocated: bigint; totalPendingRedemptions: bigint; classes: Array<{ capitalClass: string; classId: string; nav: bigint; redeemable: bigint; allocated: bigint; reservedLiabilities: bigint; pendingRedemptions: bigint; realizedYield: bigint; impairments: bigint; restriction: string; exposureMix: Array<{ healthPlan: string; policySeries: string | null; fundingLine: string; allocatedAmount: bigint; reservedCapacity: bigint; weightBps: number; }>; }>; }; export type MemberReadModel = { wallet: string; planParticipations: Array<{ healthPlan: string; policySeries: string; eligibility: string; delegatedRights: string[]; claimableRewards: bigint; payableClaims: bigint; payoutHistory: bigint; claimStatusCounts: Record; }>; }; export declare function toBigIntAmount(value: BigNumberish | null | undefined): bigint; export declare function recomputeReserveBalanceSheet(input?: PartialReserveBalanceSheet): NormalizedReserveBalanceSheet; export declare function sumReserveBalanceSheets(sheets: Array): NormalizedReserveBalanceSheet; export declare function describeSeriesMode(mode: number): string; export declare function describeSeriesStatus(status: number): string; export declare function describeFundingLineType(lineType: number): string; export declare function describeEligibilityStatus(status: number): string; export declare function describeClaimStatus(status: number): string; export declare function describeObligationStatus(status: number): string; export declare function describeCapitalRestriction(restrictionMode: number): string; export declare function bpsRatio(numerator: bigint, denominator: bigint): bigint | null; export declare function buildSponsorReadModel(params: { healthPlan: HealthPlanSnapshot; policySeries: PolicySeriesSnapshot[]; fundingLines: FundingLineSnapshot[]; obligations: ObligationSnapshot[]; claimCases: ClaimCaseSnapshot[]; planLedger?: PartialReserveBalanceSheet; outcomesBySeries?: Record; }): SponsorReadModel; export declare function buildCapitalReadModel(params: { liquidityPool: LiquidityPoolSnapshot; capitalClasses: CapitalClassSnapshot[]; classLedgers: PoolClassLedgerSnapshot[]; allocations: AllocationPositionSnapshot[]; }): CapitalReadModel; export declare function buildMemberReadModel(params: { wallet: PublicKeyish; memberPositions: MemberPositionSnapshot[]; obligations: ObligationSnapshot[]; claimCases: ClaimCaseSnapshot[]; }): MemberReadModel; export declare function shortenAddress(address: string, size?: number): string;