import type { Transaction } from '@onelabs/sui/transactions'; import type { ProposalParams } from '../types/index.js'; import type { DeepBookConfig } from '../utils/config.js'; /** * GovernanceContract class for managing governance operations in DeepBook. */ export declare class GovernanceContract { #private; /** * @param {DeepBookConfig} config Configuration for GovernanceContract */ constructor(config: DeepBookConfig); /** * @description Stake a specified amount in the pool * @param {string} poolKey The key to identify the pool * @param {string} balanceManagerKey The key to identify the BalanceManager * @param {number} stakeAmount The amount to stake * @returns A function that takes a Transaction object */ stake: (poolKey: string, balanceManagerKey: string, stakeAmount: number) => (tx: Transaction) => void; /** * @description Unstake from the pool * @param {string} poolKey The key to identify the pool * @param {string} balanceManagerKey The key to identify the BalanceManager * @returns A function that takes a Transaction object */ unstake: (poolKey: string, balanceManagerKey: string) => (tx: Transaction) => void; /** * @description Submit a governance proposal * @param {ProposalParams} params Parameters for the proposal * @returns A function that takes a Transaction object */ submitProposal: (params: ProposalParams) => (tx: Transaction) => void; /** * @description Vote on a proposal * @param {string} poolKey The key to identify the pool * @param {string} balanceManagerKey The key to identify the BalanceManager * @param {string} proposal_id The ID of the proposal to vote on * @returns A function that takes a Transaction object */ vote: (poolKey: string, balanceManagerKey: string, proposal_id: string) => (tx: Transaction) => void; }