///
import { ModuleConfig, ModuleConfigJSON, UnlockingObject, StakeSharingCoefficient, PunishmentLockingPeriods } from './types';
export declare const sortUnlocking: (unlocks: UnlockingObject[]) => void;
export declare const equalUnlocking: (a: UnlockingObject, b: UnlockingObject) => boolean;
export declare const isNullCharacterIncluded: (input: string) => boolean;
export declare const isUsername: (username: string) => boolean;
export declare const validateSignature: (tag: string, chainID: Buffer, publicKey: Buffer, signature: Buffer, bytes: Buffer) => boolean;
export interface ValidatorWeight {
readonly address: Buffer;
weight: bigint;
}
export declare const pickStandByValidator: (validatorWeights: ReadonlyArray, randomSeed: Buffer) => number;
export declare const shuffleValidatorList: (previousRoundSeed1: Buffer, addresses: ValidatorWeight[]) => ValidatorWeight[];
export declare const selectStandbyValidators: (validatorWeights: ValidatorWeight[], randomSeed1: Buffer, randomSeed2?: Buffer) => ValidatorWeight[];
export declare const isCurrentlyPunished: (height: number, pomHeights: ReadonlyArray, punishmentWindowSelfStaking: number) => boolean;
export declare const getWaitTime: (senderAddress: Buffer, validatorAddress: Buffer, punishmentLockingPeriods: PunishmentLockingPeriods) => number;
export declare const getPunishTime: (senderAddress: Buffer, validatorAddress: Buffer, punishmentLockingPeriods: PunishmentLockingPeriods) => number;
export declare const hasWaited: (unlockingObject: UnlockingObject, senderAddress: Buffer, height: number, punishmentLockingPeriods: PunishmentLockingPeriods) => boolean;
export declare const isPunished: (unlockingObject: UnlockingObject, pomHeights: ReadonlyArray, senderAddress: Buffer, height: number, punishmentLockingPeriods: PunishmentLockingPeriods) => boolean;
export declare const isCertificateGenerated: (options: {
unlockObject: UnlockingObject;
genesisHeight: number;
maxHeightCertified: number;
roundLength: number;
}) => boolean;
export declare const getMinPunishedHeight: (pomHeights: number[], punishmentWindow: number) => number;
export declare const getPunishmentPeriod: (senderAddress: Buffer, validatorAddress: Buffer, pomHeights: number[], currentHeight: number, punishmentLockingPeriods: PunishmentLockingPeriods) => number;
export declare const getModuleConfig: (config: ModuleConfigJSON) => ModuleConfig;
export declare const getValidatorWeight: (factorSelfStakes: number, selfStake: bigint, totalStakeReceived: bigint) => bigint;
export declare const isSharingCoefficientSorted: (sharingCoefficients: StakeSharingCoefficient[]) => boolean;
export declare const calculateStakeRewards: (stakeSharingCoefficient: StakeSharingCoefficient, amount: bigint, validatorSharingCoefficient: StakeSharingCoefficient) => bigint;