/// import { BN } from '@coral-xyz/anchor'; import { Mint } from '@solana/spl-token'; import { PublicKey } from '@solana/web3.js'; import { VsrClient } from './voteStakeRegistryClient'; export type TokenProgramAccount = { publicKey: PublicKey; account: T; }; export interface Voter { deposits: Deposit[]; voterAuthority: PublicKey; registrar: PublicKey; } export interface votingMint { baselineVoteWeightScaledFactor: BN; digitShift: number; grantAuthority: PublicKey; lockupSaturationSecs: BN; maxExtraLockupVoteWeightScaledFactor: BN; mint: PublicKey; } export type LockupType = 'none' | 'monthly' | 'cliff' | 'constant' | 'daily'; export interface Registrar { governanceProgramId: PublicKey; realm: PublicKey; realmAuthority: PublicKey; realmGoverningTokenMint: PublicKey; votingMints: votingMint[]; } interface LockupKind { none: object; daily: object; monthly: object; cliff: object; constant: object; } interface Lockup { endTs: BN; kind: LockupKind; startTs: BN; } export interface Deposit { allowClawback: boolean; amountDepositedNative: BN; amountInitiallyLockedNative: BN; isUsed: boolean; lockup: Lockup; votingMintConfigIdx: number; } export interface DepositWithMintAccount extends Deposit { mint: TokenProgramAccount; index: number; available: BN; vestingRate: BN | null; currentlyLocked: BN; nextVestingTimestamp: BN | null; votingPower: BN; votingPowerBaseline: BN; } export declare const emptyPk = "11111111111111111111111111111111"; export declare const getRegistrarPDA: (realmPk: PublicKey, mint: PublicKey, clientProgramId: PublicKey) => Promise<{ registrar: PublicKey; registrarBump: number; }>; export declare const getVoterPDA: (registrar: PublicKey, walletPk: PublicKey, clientProgramId: PublicKey) => Promise<{ voter: PublicKey; voterBump: number; }>; export declare const getVoterWeightPDA: (registrar: PublicKey, walletPk: PublicKey, clientProgramId: PublicKey) => Promise<{ voterWeightPk: PublicKey; voterWeightBump: number; }>; export declare const tryGetVoter: (voterPk: PublicKey, client: VsrClient) => Promise; export declare const tryGetRegistrar: (registrarPk: PublicKey, client: VsrClient) => Promise; export {};