import { Prover, EpochKeyControl } from './type';
import { Groth16Proof } from 'snarkjs';
import { BaseProof } from './BaseProof';
/**
 * A class representing an [epoch key lite proof](https://developer.unirep.io/docs/circuits-api/classes/src.EpochKeyLiteProof). Each of the following properties are public signals for the proof.

Unlike the epoch key proof the lite proof does not prove membership in a state tree.
 */
export declare class EpochKeyLiteProof extends BaseProof {
    /**
     * The index of the data in the public signals
     */
    readonly idx: {
        control: number;
        epochKey: number;
        data: number;
    };
    /**
     * The control field used for the proof. This field contains many signals binary encoded into a single 253 bit value. This value is automatically decoded into the other properties on this class.
     */
    control: bigint;
    /**
     * The epoch key being proved.
     */
    epochKey: bigint;
    /**
     * The 32 byte data endorsed by the proof.
     */
    data: bigint;
    /**
     * The nonce used to generate the epoch key. To determine if this value is set check that `revealNonce == 1`.
     */
    nonce: bigint;
    /**
     * The epoch the proof was made within.
     */
    epoch: bigint;
    /**
     * The attester id for the proof.
     */
    attesterId: bigint;
    /**
     * A number indicating whether the epoch key nonce was revealed in the proof. This value will be either `1` or `0`.
     */
    revealNonce: bigint;
    /**
     * The chain id for the proof.
     */
    chainId: bigint;
    /**
     * @param publicSignals The public signals of the epoch key lite proof that can be verified by the prover
     * @param proof The proof that can be verified by the prover
     * @param prover The prover that can verify the public signals and the proof
     * @example
     * ```ts
     * import { EpochKeyLiteProof } from '@unirep/circuits'
     * const data = new EpochKeyLiteProof(publicSignals, proof)
     * ```
     */
    constructor(publicSignals: (bigint | string)[], proof: Groth16Proof, prover?: Prover);
    /**
     * Pack several variables into one `bigint` variable.
     * @param config The variables that will be packed.
     * @returns The control
     * @example
     * ```ts
     * const control: bigint = EpochKeyLiteProof.buildControl({
     *   epoch,
     *   nonce,
     *   attesterId,
     *   revealNonce,
     *   chainId
     * })
     * ```
     */
    static buildControl(config: EpochKeyControl): bigint;
}
