import { Interface } from '@ethersproject/abi';
import { TDecrementGaugeParams, TDecrementGaugesParams, TDelegateGaugeParams, TIncrementGaugeParams, TIncrementGaugesParams, TUndelegateGaugeParams } from '../../types/bHermesGauges';
/**
 * @title BHermesGauges class
 * @notice Provides a set of function to encode calldata for the different bHermes gauges contract interactions.
 * @dev Actions such as incrementing or decrementing gauge vote allocations.
 * @author MaiaDAO
 */
export declare abstract class BHermesGauges {
    static readonly INTERFACE: Interface;
    /**
     * Cannot be constructed.
     */
    private constructor();
    /**
     *  Creates the necessary execution params to increment weight on a single gauge.
     * @param pool  The address of the pool for which gauge to increment weight
     * @param weight  The amount of weight to increment
     * @returns  The encoded increment gauge votes params
     */
    static encodeIncrementGaugeCalldata({ pool, weight }: TIncrementGaugeParams): string;
    /**
     *  Creates the necessary execution params to increment weight on multiple gauges.
     * @param pools  array of uniswap V3 pool addresses
     * @param weights  array of weight to be incremented
     * @returns  The encoded increment gauges params
     */
    static encodeIncrementGaugesCalldata({ pools, weights }: TIncrementGaugesParams): string;
    /**
     *  Creates the necessary execution params to decrement votes on a given gauge.
     * @param pool  The address of the pool for which gauge to decrement weight from
     * @param weight  The amount of weight to decrement
     * @returns  The encoded decrement gauge votes params
     */
    static encodeDecrementGaugeCalldata({ pool, weight }: TDecrementGaugeParams): string;
    /**
     *  Creates the necessary execution params to decrement votes on multiple gauges.
     * @param pools  array of uniswap V3 pool addresses
     * @param weights  array of amount of weight to be decremented
     * @returns  The encoded decrement gauges params
     */
    static encodeDecrementGaugesCalldata({ pools, weights }: TDecrementGaugesParams): string;
    /**
     *  Creates the necessary execution params to delegate bHermes gauge weight to a given address.
     * @param newDelegatee  The address of the gauge to delegate votes to
     */
    static encodeDelegateCalldata({ newDelegatee }: TDelegateGaugeParams): string;
    /**
     *  Creates the necessary execution params to undelegate bHermes gauge weight from a given address.
     * @param delegatee  The address of the gauge to undelegate votes from
     * @param weight  The amount of gauge weight to undelegate
     */
    static encodeUndelegateCalldata({ delegatee, weight }: TUndelegateGaugeParams): string;
}
