import bigInt, { BigInteger } from 'big-integer'; import { TimelockInit, RNG } from './interface'; export declare const RSA_MODULUS: bigInt.BigInteger; export declare function prove(time: number, locked: BigInteger, unlocked: BigInteger, mod?: BigInteger): TimelockProof; export declare function unlockAndProve(time: number, locked: BigInteger, mod?: BigInteger): TimelockProof; export declare function verify(locked: BigInteger, proof: TimelockProof, time: number): boolean; export declare class Timelock { lockedValue: BigInteger; unlockedValue: BigInteger; vdfProof: BigInteger; modulus: BigInteger; constructor({ lockedValue, unlockedValue, vdfProof, modulus }: TimelockInit); static precompute(time: number, mod?: BigInteger, rng?: RNG): Timelock; getProof(time: number, rng?: RNG): { lockedValue: BigInteger; proof: TimelockProof; }; encode(): Uint8Array; static fromArray(buf: Uint8Array, mod?: BigInteger): [Timelock, number]; } export declare class TimelockProof { vdfTuple: Timelock; nonce: BigInteger; constructor({ vdfTuple, nonce }: { vdfTuple: Timelock; nonce: BigInteger; }); symmetricKey(): Uint8Array; encode(): Uint8Array; static fromArray(buf: Uint8Array, mod?: BigInteger): [TimelockProof, number]; } export declare function encodeBigInt(v: BigInteger): number[]; export declare function decodeBigInt(buf: ArrayLike): [BigInteger, number];