/// /// import { Keypair, TransactionInstruction } from '@solana/web3.js'; import BN from 'bn.js'; import type { ValidatorBondsProgram } from '../../src'; import type { Provider } from '@coral-xyz/anchor'; import type { StakeState } from '@marinade.finance/marinade-ts-sdk/dist/src/marinade-state/borsh/stake-state'; import type { Wallet as WalletInterface } from '@marinade.finance/web3js-1x'; import type { ExtendedProvider } from '@marinade.finance/web3js-1x'; import type { PublicKey } from '@solana/web3.js'; import type { AccountInfo, Lockup, Signer } from '@solana/web3.js'; export type SetLockupStakeParams = { stakePubkey: PublicKey; authorizedPubkey: PublicKey; unixTimestamp?: number; epoch?: number; custodian?: PublicKey; }; export declare function setLockup(params: SetLockupStakeParams): TransactionInstruction; export declare enum StakeStates { Uninitialized = 0, Initialized = 1, Delegated = 2, RewardsPool = 3 } export declare function getAndCheckStakeAccount(provider: Provider, account: PublicKey, stakeStateCheck?: StakeStates): Promise<[StakeState, AccountInfo]>; export type VoteAccountKeys = { voteAccount: PublicKey; validatorIdentity: Keypair; authorizedVoter: Keypair; authorizedWithdrawer: Keypair; }; export declare function createVoteAccountWithIdentity(provider: ExtendedProvider, validatorIdentity: Keypair): Promise; export declare function createVoteAccount({ provider, rentExempt, authorizedVoter, authorizedWithdrawer, validatorIdentity, voteAccount, }: { provider: ExtendedProvider; rentExempt?: number; authorizedVoter?: Keypair; authorizedWithdrawer?: Keypair; validatorIdentity?: Keypair; voteAccount?: Keypair; }): Promise; export declare function removeVoteAccount({ provider, voteAccount, authorizedWithdrawer, toPubkey, }: { provider: ExtendedProvider; voteAccount: PublicKey; authorizedWithdrawer: Keypair; toPubkey?: PublicKey; }): Promise<{ voteAccount: PublicKey; authorizedWithdrawer: Keypair; toPubkey: PublicKey; lamports: number; }>; export declare function authorizeStakeAccount({ provider, stakeAccount, authority, staker, withdrawer, custodian, }: { provider: ExtendedProvider; stakeAccount: PublicKey; authority: WalletInterface | Signer; staker?: PublicKey; withdrawer?: PublicKey; custodian?: WalletInterface | Signer; }): Promise; export type DelegatedStakeAccount = { stakeAccount: PublicKey; voteAccount: PublicKey; validatorIdentity: Keypair | undefined; staker: Keypair; withdrawer: Keypair; }; export declare function delegatedStakeAccount({ provider, voteAccountToDelegate, lockup, lamports, rentExemptVote, staker, withdrawer, }: { provider: ExtendedProvider; voteAccountToDelegate?: PublicKey; lockup?: Lockup; lamports?: number | BN; rentExemptVote?: number; staker?: Keypair; withdrawer?: Keypair; }): Promise; export declare function createBondsFundedStakeAccount({ program, provider, configAccount, lamports, voteAccount, }: { program: ValidatorBondsProgram; provider: ExtendedProvider; configAccount: PublicKey; lamports: number | BN; voteAccount: PublicKey; }): Promise; export declare function createSettlementFundedDelegatedStake({ program, provider, configAccount, settlementAccount, voteAccount, lamports, }: { program: ValidatorBondsProgram; provider: ExtendedProvider; configAccount: PublicKey; settlementAccount: PublicKey; voteAccount: PublicKey; lamports: number; }): Promise; export declare function createSettlementFundedInitializedStake({ program, provider, configAccount, settlementAccount, lamports, }: { program: ValidatorBondsProgram; provider: ExtendedProvider; configAccount: PublicKey; settlementAccount: PublicKey; lamports?: number; }): Promise; export declare function createDelegatedStakeAccount({ provider, lamports, voteAccount, withdrawer, staker, }: { provider: ExtendedProvider; lamports: number | BN; voteAccount: PublicKey; withdrawer: PublicKey; staker: PublicKey; }): Promise; export declare function isErrorEpochRewardsPeriod(e: unknown): boolean; export declare function retryOnEpochRewardsPeriod(fn: () => Promise): Promise; export declare function nonInitializedStakeAccount(provider: ExtendedProvider, rentExempt?: number): Promise<[PublicKey, Keypair]>; export type InitializedStakeAccount = { stakeAccount: PublicKey; staker: Keypair | PublicKey; withdrawer: Keypair | PublicKey; }; export declare function createInitializedStakeAccount({ provider, lockup, rentExempt, staker, withdrawer, }: { provider: ExtendedProvider; lockup?: Lockup; rentExempt?: number; staker?: Keypair | PublicKey; withdrawer?: Keypair | PublicKey; }): Promise; //# sourceMappingURL=staking.d.ts.map