import { Neuron as NNSNeuron } from '@dfinity/nns/dist/candid/governance';
import { BigNumber } from 'bignumber.js';
import { ICPNeuron } from './types';
export declare const neuronVotingPower: ({ neuron }: {
    neuron: NNSNeuron;
}) => BigNumber;
interface VotingPowerParams {
    dissolveDelay: bigint;
    stakeE8s: bigint;
    ageSeconds: bigint;
    maxAgeBonus?: number;
    maxDissolveDelayBonus?: number;
    maxAgeSeconds?: number;
    maxDissolveDelaySeconds?: number;
    minDissolveDelaySeconds?: number;
}
export declare const calculateVotingPower: ({ stakeE8s, dissolveDelay, ageSeconds, minDissolveDelaySeconds, }: VotingPowerParams) => number;
export declare const neuronPotentialVotingPower: ({ neuron, newDissolveDelayInSeconds, }: {
    neuron: ICPNeuron;
    newDissolveDelayInSeconds: number;
}) => number;
export declare const bonusMultiplier: ({ amount, amountForMaxBonus, maxBonus, }: {
    amount: bigint;
    amountForMaxBonus: number;
    maxBonus: number;
}) => number;
export declare const getNeuronDissolveDurationSeconds: (neuron: ICPNeuron) => bigint;
export declare const secondsToDurationString: (seconds: string) => string;
export declare const getNeuronDissolveDuration: (neuron: ICPNeuron) => string;
export declare const getDissolveDelayMultiplier: (delayInSeconds: bigint) => number;
export declare const getAgeMultiplier: (ageSeconds: bigint) => number;
export declare const votingPowerNeedsRefresh: (fullNeurons: ICPNeuron[]) => {
    needsRefresh: boolean;
    minDays: number;
    minHours: number;
    minMinutes: number;
};
export declare const getSecondsTillVotingPowerExpires: (neuron: ICPNeuron) => number;
export declare const getNeuronVotingPower: (neuron: ICPNeuron) => number;
export {};
