/** * Conviction Vault — time × amount × consistency = economic power. * * Stakers earn conviction score by locking tokens for defined durations. * Score determines protocol revenue share proportionally. * * Novel: the consistency_multiplier rewards holders who re-lock consecutively, * creating a compounding loyalty effect. Each missed epoch resets the multiplier. */ import { Connection, PublicKey } from "@solana/web3.js"; import type { ConvictionPosition, SdkInstructions } from "../types/index.js"; /** * Build a conviction_stake instruction. */ export declare function buildConvictionStakeInstruction(vault: PublicKey, stakerTokenAccount: PublicKey, convictionPoolAccount: PublicKey, baseMint: PublicKey, staker: PublicKey, amount: bigint, lockDurationSlots: bigint, tokenProgram?: PublicKey): SdkInstructions; /** * Build a conviction_unstake instruction. * If called before unlockSlot: burns 20% of principal. */ export declare function buildConvictionUnstakeInstruction(vault: PublicKey, stakerTokenAccount: PublicKey, convictionPoolAccount: PublicKey, baseMint: PublicKey, staker: PublicKey, tokenProgram?: PublicKey): SdkInstructions; /** * Build a claim_conviction_rewards instruction. */ export declare function buildClaimConvictionRewardsInstruction(vault: PublicKey, revenuePoolAccount: PublicKey, stakerTokenAccount: PublicKey, baseMint: PublicKey, staker: PublicKey, tokenProgram?: PublicKey): SdkInstructions; export declare function fetchConvictionPosition(connection: Connection, vault: PublicKey, staker: PublicKey): Promise; /** * Estimate what conviction score a new stake would generate. */ export declare function estimateConvictionScore(amount: bigint, durationSlots: bigint, consecutiveEpochs: number, epochDurationSlots?: bigint): bigint; /** * Estimate revenue share for a staker given vault totals. */ export declare function estimateRevenueShare(stakerScore: bigint, totalVaultScore: bigint, epochRevenue: bigint): bigint; /** * How many slots remain before a conviction position unlocks penalty-free. */ export declare function slotsUntilFreeUnlock(position: ConvictionPosition, currentSlot: bigint): bigint; //# sourceMappingURL=conviction-vault.d.ts.map