import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "../common";
export declare namespace IUnirep {
    type ConfigStruct = {
        stateTreeDepth: BigNumberish;
        epochTreeDepth: BigNumberish;
        historyTreeDepth: BigNumberish;
        fieldCount: BigNumberish;
        sumFieldCount: BigNumberish;
        numEpochKeyNoncePerEpoch: BigNumberish;
        replNonceBits: BigNumberish;
        replFieldBits: BigNumberish;
    };
    type ConfigStructOutput = [
        number,
        number,
        number,
        number,
        number,
        number,
        number,
        number
    ] & {
        stateTreeDepth: number;
        epochTreeDepth: number;
        historyTreeDepth: number;
        fieldCount: number;
        sumFieldCount: number;
        numEpochKeyNoncePerEpoch: number;
        replNonceBits: number;
        replFieldBits: number;
    };
    type SignupSignalsStruct = {
        epoch: BigNumberish;
        chainId: BigNumberish;
        attesterId: BigNumberish;
        stateTreeLeaf: BigNumberish;
        identityCommitment: BigNumberish;
    };
    type SignupSignalsStructOutput = [
        number,
        number,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        epoch: number;
        chainId: number;
        attesterId: BigNumber;
        stateTreeLeaf: BigNumber;
        identityCommitment: BigNumber;
    };
    type UserStateTransitionSignalsStruct = {
        historyTreeRoot: BigNumberish;
        stateTreeLeaf: BigNumberish;
        toEpoch: BigNumberish;
        attesterId: BigNumberish;
        epochKeys: BigNumberish[];
    };
    type UserStateTransitionSignalsStructOutput = [
        BigNumber,
        BigNumber,
        number,
        BigNumber,
        BigNumber[]
    ] & {
        historyTreeRoot: BigNumber;
        stateTreeLeaf: BigNumber;
        toEpoch: number;
        attesterId: BigNumber;
        epochKeys: BigNumber[];
    };
}
export interface UnirepInterface extends utils.Interface {
    functions: {
        "SNARK_SCALAR_FIELD()": FunctionFragment;
        "_updateEpochIfNeeded(uint256)": FunctionFragment;
        "attest(uint256,uint48,uint256,uint256)": FunctionFragment;
        "attestationCount()": FunctionFragment;
        "attesterCurrentEpoch(uint160)": FunctionFragment;
        "attesterEpochLength(uint160)": FunctionFragment;
        "attesterEpochRemainingTime(uint160)": FunctionFragment;
        "attesterEpochRoot(uint160,uint48)": FunctionFragment;
        "attesterMemberCount(uint160)": FunctionFragment;
        "attesterSemaphoreGroupRoot(uint160)": FunctionFragment;
        "attesterSignUp(uint48)": FunctionFragment;
        "attesterSignUpViaRelayer(address,uint48,bytes)": FunctionFragment;
        "attesterStartTimestamp(uint160)": FunctionFragment;
        "attesterStateTreeLeafCount(uint160)": FunctionFragment;
        "attesterStateTreeRoot(uint160)": FunctionFragment;
        "attesterStateTreeRootExists(uint160,uint48,uint256)": FunctionFragment;
        "chainid()": FunctionFragment;
        "config()": FunctionFragment;
        "decodeSignupControl(uint256)": FunctionFragment;
        "decodeSignupSignals(uint256[])": FunctionFragment;
        "decodeUserStateTransitionControl(uint256)": FunctionFragment;
        "decodeUserStateTransitionSignals(uint256[])": FunctionFragment;
        "defaultDataHash()": FunctionFragment;
        "epochTreeDepth()": FunctionFragment;
        "fieldCount()": FunctionFragment;
        "historyTreeDepth()": FunctionFragment;
        "manualUserSignUp(uint48,uint256,uint256,uint256[])": FunctionFragment;
        "numEpochKeyNoncePerEpoch()": FunctionFragment;
        "replFieldBits()": FunctionFragment;
        "replNonceBits()": FunctionFragment;
        "signupVerifier()": FunctionFragment;
        "stateTreeDepth()": FunctionFragment;
        "sumFieldCount()": FunctionFragment;
        "updateEpochIfNeeded(uint160)": FunctionFragment;
        "usedNullifiers(uint256)": FunctionFragment;
        "userSignUp(uint256[],uint256[8])": FunctionFragment;
        "userStateTransition(uint256[],uint256[8])": FunctionFragment;
        "userStateTransitionVerifier()": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "SNARK_SCALAR_FIELD" | "_updateEpochIfNeeded" | "attest" | "attestationCount" | "attesterCurrentEpoch" | "attesterEpochLength" | "attesterEpochRemainingTime" | "attesterEpochRoot" | "attesterMemberCount" | "attesterSemaphoreGroupRoot" | "attesterSignUp" | "attesterSignUpViaRelayer" | "attesterStartTimestamp" | "attesterStateTreeLeafCount" | "attesterStateTreeRoot" | "attesterStateTreeRootExists" | "chainid" | "config" | "decodeSignupControl" | "decodeSignupSignals" | "decodeUserStateTransitionControl" | "decodeUserStateTransitionSignals" | "defaultDataHash" | "epochTreeDepth" | "fieldCount" | "historyTreeDepth" | "manualUserSignUp" | "numEpochKeyNoncePerEpoch" | "replFieldBits" | "replNonceBits" | "signupVerifier" | "stateTreeDepth" | "sumFieldCount" | "updateEpochIfNeeded" | "usedNullifiers" | "userSignUp" | "userStateTransition" | "userStateTransitionVerifier"): FunctionFragment;
    encodeFunctionData(functionFragment: "SNARK_SCALAR_FIELD", values?: undefined): string;
    encodeFunctionData(functionFragment: "_updateEpochIfNeeded", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "attest", values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "attestationCount", values?: undefined): string;
    encodeFunctionData(functionFragment: "attesterCurrentEpoch", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "attesterEpochLength", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "attesterEpochRemainingTime", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "attesterEpochRoot", values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "attesterMemberCount", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "attesterSemaphoreGroupRoot", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "attesterSignUp", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "attesterSignUpViaRelayer", values: [string, BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: "attesterStartTimestamp", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "attesterStateTreeLeafCount", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "attesterStateTreeRoot", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "attesterStateTreeRootExists", values: [BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "chainid", values?: undefined): string;
    encodeFunctionData(functionFragment: "config", values?: undefined): string;
    encodeFunctionData(functionFragment: "decodeSignupControl", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "decodeSignupSignals", values: [BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "decodeUserStateTransitionControl", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "decodeUserStateTransitionSignals", values: [BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "defaultDataHash", values?: undefined): string;
    encodeFunctionData(functionFragment: "epochTreeDepth", values?: undefined): string;
    encodeFunctionData(functionFragment: "fieldCount", values?: undefined): string;
    encodeFunctionData(functionFragment: "historyTreeDepth", values?: undefined): string;
    encodeFunctionData(functionFragment: "manualUserSignUp", values: [BigNumberish, BigNumberish, BigNumberish, BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "numEpochKeyNoncePerEpoch", values?: undefined): string;
    encodeFunctionData(functionFragment: "replFieldBits", values?: undefined): string;
    encodeFunctionData(functionFragment: "replNonceBits", values?: undefined): string;
    encodeFunctionData(functionFragment: "signupVerifier", values?: undefined): string;
    encodeFunctionData(functionFragment: "stateTreeDepth", values?: undefined): string;
    encodeFunctionData(functionFragment: "sumFieldCount", values?: undefined): string;
    encodeFunctionData(functionFragment: "updateEpochIfNeeded", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "usedNullifiers", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "userSignUp", values: [BigNumberish[], BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "userStateTransition", values: [BigNumberish[], BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "userStateTransitionVerifier", values?: undefined): string;
    decodeFunctionResult(functionFragment: "SNARK_SCALAR_FIELD", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_updateEpochIfNeeded", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "attest", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "attestationCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "attesterCurrentEpoch", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "attesterEpochLength", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "attesterEpochRemainingTime", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "attesterEpochRoot", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "attesterMemberCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "attesterSemaphoreGroupRoot", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "attesterSignUp", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "attesterSignUpViaRelayer", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "attesterStartTimestamp", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "attesterStateTreeLeafCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "attesterStateTreeRoot", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "attesterStateTreeRootExists", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "chainid", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "config", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "decodeSignupControl", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "decodeSignupSignals", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "decodeUserStateTransitionControl", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "decodeUserStateTransitionSignals", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "defaultDataHash", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "epochTreeDepth", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "fieldCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "historyTreeDepth", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "manualUserSignUp", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "numEpochKeyNoncePerEpoch", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "replFieldBits", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "replNonceBits", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "signupVerifier", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "stateTreeDepth", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "sumFieldCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateEpochIfNeeded", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "usedNullifiers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "userSignUp", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "userStateTransition", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "userStateTransitionVerifier", data: BytesLike): Result;
    events: {
        "Attestation(uint48,uint256,uint160,uint256,uint256)": EventFragment;
        "AttesterSignedUp(uint160,uint48,uint48)": EventFragment;
        "EpochEnded(uint48,uint160)": EventFragment;
        "EpochTreeLeaf(uint48,uint160,uint256,uint256)": EventFragment;
        "HistoryTreeLeaf(uint160,uint256)": EventFragment;
        "StateTreeLeaf(uint48,uint160,uint256,uint256)": EventFragment;
        "UserSignedUp(uint48,uint256,uint160,uint256)": EventFragment;
        "UserStateTransitioned(uint48,uint160,uint256,uint256,uint256)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "Attestation"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "AttesterSignedUp"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "EpochEnded"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "EpochTreeLeaf"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "HistoryTreeLeaf"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "StateTreeLeaf"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "UserSignedUp"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "UserStateTransitioned"): EventFragment;
}
export interface AttestationEventObject {
    epoch: number;
    epochKey: BigNumber;
    attesterId: BigNumber;
    fieldIndex: BigNumber;
    change: BigNumber;
}
export type AttestationEvent = TypedEvent<[
    number,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], AttestationEventObject>;
export type AttestationEventFilter = TypedEventFilter<AttestationEvent>;
export interface AttesterSignedUpEventObject {
    attesterId: BigNumber;
    epochLength: number;
    timestamp: number;
}
export type AttesterSignedUpEvent = TypedEvent<[
    BigNumber,
    number,
    number
], AttesterSignedUpEventObject>;
export type AttesterSignedUpEventFilter = TypedEventFilter<AttesterSignedUpEvent>;
export interface EpochEndedEventObject {
    epoch: number;
    attesterId: BigNumber;
}
export type EpochEndedEvent = TypedEvent<[
    number,
    BigNumber
], EpochEndedEventObject>;
export type EpochEndedEventFilter = TypedEventFilter<EpochEndedEvent>;
export interface EpochTreeLeafEventObject {
    epoch: number;
    attesterId: BigNumber;
    index: BigNumber;
    leaf: BigNumber;
}
export type EpochTreeLeafEvent = TypedEvent<[
    number,
    BigNumber,
    BigNumber,
    BigNumber
], EpochTreeLeafEventObject>;
export type EpochTreeLeafEventFilter = TypedEventFilter<EpochTreeLeafEvent>;
export interface HistoryTreeLeafEventObject {
    attesterId: BigNumber;
    leaf: BigNumber;
}
export type HistoryTreeLeafEvent = TypedEvent<[
    BigNumber,
    BigNumber
], HistoryTreeLeafEventObject>;
export type HistoryTreeLeafEventFilter = TypedEventFilter<HistoryTreeLeafEvent>;
export interface StateTreeLeafEventObject {
    epoch: number;
    attesterId: BigNumber;
    index: BigNumber;
    leaf: BigNumber;
}
export type StateTreeLeafEvent = TypedEvent<[
    number,
    BigNumber,
    BigNumber,
    BigNumber
], StateTreeLeafEventObject>;
export type StateTreeLeafEventFilter = TypedEventFilter<StateTreeLeafEvent>;
export interface UserSignedUpEventObject {
    epoch: number;
    identityCommitment: BigNumber;
    attesterId: BigNumber;
    leafIndex: BigNumber;
}
export type UserSignedUpEvent = TypedEvent<[
    number,
    BigNumber,
    BigNumber,
    BigNumber
], UserSignedUpEventObject>;
export type UserSignedUpEventFilter = TypedEventFilter<UserSignedUpEvent>;
export interface UserStateTransitionedEventObject {
    epoch: number;
    attesterId: BigNumber;
    leafIndex: BigNumber;
    hashedLeaf: BigNumber;
    nullifier: BigNumber;
}
export type UserStateTransitionedEvent = TypedEvent<[
    number,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], UserStateTransitionedEventObject>;
export type UserStateTransitionedEventFilter = TypedEventFilter<UserStateTransitionedEvent>;
export interface Unirep extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: UnirepInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        SNARK_SCALAR_FIELD(overrides?: CallOverrides): Promise<[BigNumber]>;
        _updateEpochIfNeeded(attesterId: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        attest(epochKey: BigNumberish, epoch: BigNumberish, fieldIndex: BigNumberish, change: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        attestationCount(overrides?: CallOverrides): Promise<[number]>;
        attesterCurrentEpoch(attesterId: BigNumberish, overrides?: CallOverrides): Promise<[number]>;
        attesterEpochLength(attesterId: BigNumberish, overrides?: CallOverrides): Promise<[number]>;
        attesterEpochRemainingTime(attesterId: BigNumberish, overrides?: CallOverrides): Promise<[number]>;
        attesterEpochRoot(attesterId: BigNumberish, epoch: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>;
        attesterMemberCount(attesterId: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>;
        attesterSemaphoreGroupRoot(attesterId: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>;
        attesterSignUp(epochLength: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        attesterSignUpViaRelayer(attester: string, epochLength: BigNumberish, signature: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        attesterStartTimestamp(attesterId: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>;
        attesterStateTreeLeafCount(attesterId: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>;
        attesterStateTreeRoot(attesterId: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>;
        attesterStateTreeRootExists(attesterId: BigNumberish, epoch: BigNumberish, root: BigNumberish, overrides?: CallOverrides): Promise<[boolean]>;
        chainid(overrides?: CallOverrides): Promise<[number]>;
        config(overrides?: CallOverrides): Promise<[IUnirep.ConfigStructOutput]>;
        decodeSignupControl(control: BigNumberish, overrides?: CallOverrides): Promise<[
            BigNumber,
            number,
            number
        ] & {
            attesterId: BigNumber;
            epoch: number;
            chainId: number;
        }>;
        decodeSignupSignals(publicSignals: BigNumberish[], overrides?: CallOverrides): Promise<[IUnirep.SignupSignalsStructOutput]>;
        decodeUserStateTransitionControl(control: BigNumberish, overrides?: CallOverrides): Promise<[
            BigNumber,
            number
        ] & {
            attesterId: BigNumber;
            toEpoch: number;
        }>;
        decodeUserStateTransitionSignals(publicSignals: BigNumberish[], overrides?: CallOverrides): Promise<[IUnirep.UserStateTransitionSignalsStructOutput]>;
        defaultDataHash(overrides?: CallOverrides): Promise<[BigNumber]>;
        epochTreeDepth(overrides?: CallOverrides): Promise<[number]>;
        fieldCount(overrides?: CallOverrides): Promise<[number]>;
        historyTreeDepth(overrides?: CallOverrides): Promise<[number]>;
        manualUserSignUp(epoch: BigNumberish, identityCommitment: BigNumberish, leafIdentityHash: BigNumberish, initialData: BigNumberish[], overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        numEpochKeyNoncePerEpoch(overrides?: CallOverrides): Promise<[number]>;
        replFieldBits(overrides?: CallOverrides): Promise<[number]>;
        replNonceBits(overrides?: CallOverrides): Promise<[number]>;
        signupVerifier(overrides?: CallOverrides): Promise<[string]>;
        stateTreeDepth(overrides?: CallOverrides): Promise<[number]>;
        sumFieldCount(overrides?: CallOverrides): Promise<[number]>;
        updateEpochIfNeeded(attesterId: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        usedNullifiers(arg0: BigNumberish, overrides?: CallOverrides): Promise<[boolean]>;
        userSignUp(publicSignals: BigNumberish[], proof: BigNumberish[], overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        userStateTransition(publicSignals: BigNumberish[], proof: BigNumberish[], overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        userStateTransitionVerifier(overrides?: CallOverrides): Promise<[string]>;
    };
    SNARK_SCALAR_FIELD(overrides?: CallOverrides): Promise<BigNumber>;
    _updateEpochIfNeeded(attesterId: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    attest(epochKey: BigNumberish, epoch: BigNumberish, fieldIndex: BigNumberish, change: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    attestationCount(overrides?: CallOverrides): Promise<number>;
    attesterCurrentEpoch(attesterId: BigNumberish, overrides?: CallOverrides): Promise<number>;
    attesterEpochLength(attesterId: BigNumberish, overrides?: CallOverrides): Promise<number>;
    attesterEpochRemainingTime(attesterId: BigNumberish, overrides?: CallOverrides): Promise<number>;
    attesterEpochRoot(attesterId: BigNumberish, epoch: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    attesterMemberCount(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    attesterSemaphoreGroupRoot(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    attesterSignUp(epochLength: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    attesterSignUpViaRelayer(attester: string, epochLength: BigNumberish, signature: BytesLike, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    attesterStartTimestamp(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    attesterStateTreeLeafCount(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    attesterStateTreeRoot(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    attesterStateTreeRootExists(attesterId: BigNumberish, epoch: BigNumberish, root: BigNumberish, overrides?: CallOverrides): Promise<boolean>;
    chainid(overrides?: CallOverrides): Promise<number>;
    config(overrides?: CallOverrides): Promise<IUnirep.ConfigStructOutput>;
    decodeSignupControl(control: BigNumberish, overrides?: CallOverrides): Promise<[
        BigNumber,
        number,
        number
    ] & {
        attesterId: BigNumber;
        epoch: number;
        chainId: number;
    }>;
    decodeSignupSignals(publicSignals: BigNumberish[], overrides?: CallOverrides): Promise<IUnirep.SignupSignalsStructOutput>;
    decodeUserStateTransitionControl(control: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber, number] & {
        attesterId: BigNumber;
        toEpoch: number;
    }>;
    decodeUserStateTransitionSignals(publicSignals: BigNumberish[], overrides?: CallOverrides): Promise<IUnirep.UserStateTransitionSignalsStructOutput>;
    defaultDataHash(overrides?: CallOverrides): Promise<BigNumber>;
    epochTreeDepth(overrides?: CallOverrides): Promise<number>;
    fieldCount(overrides?: CallOverrides): Promise<number>;
    historyTreeDepth(overrides?: CallOverrides): Promise<number>;
    manualUserSignUp(epoch: BigNumberish, identityCommitment: BigNumberish, leafIdentityHash: BigNumberish, initialData: BigNumberish[], overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    numEpochKeyNoncePerEpoch(overrides?: CallOverrides): Promise<number>;
    replFieldBits(overrides?: CallOverrides): Promise<number>;
    replNonceBits(overrides?: CallOverrides): Promise<number>;
    signupVerifier(overrides?: CallOverrides): Promise<string>;
    stateTreeDepth(overrides?: CallOverrides): Promise<number>;
    sumFieldCount(overrides?: CallOverrides): Promise<number>;
    updateEpochIfNeeded(attesterId: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    usedNullifiers(arg0: BigNumberish, overrides?: CallOverrides): Promise<boolean>;
    userSignUp(publicSignals: BigNumberish[], proof: BigNumberish[], overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    userStateTransition(publicSignals: BigNumberish[], proof: BigNumberish[], overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    userStateTransitionVerifier(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        SNARK_SCALAR_FIELD(overrides?: CallOverrides): Promise<BigNumber>;
        _updateEpochIfNeeded(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        attest(epochKey: BigNumberish, epoch: BigNumberish, fieldIndex: BigNumberish, change: BigNumberish, overrides?: CallOverrides): Promise<void>;
        attestationCount(overrides?: CallOverrides): Promise<number>;
        attesterCurrentEpoch(attesterId: BigNumberish, overrides?: CallOverrides): Promise<number>;
        attesterEpochLength(attesterId: BigNumberish, overrides?: CallOverrides): Promise<number>;
        attesterEpochRemainingTime(attesterId: BigNumberish, overrides?: CallOverrides): Promise<number>;
        attesterEpochRoot(attesterId: BigNumberish, epoch: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        attesterMemberCount(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        attesterSemaphoreGroupRoot(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        attesterSignUp(epochLength: BigNumberish, overrides?: CallOverrides): Promise<void>;
        attesterSignUpViaRelayer(attester: string, epochLength: BigNumberish, signature: BytesLike, overrides?: CallOverrides): Promise<void>;
        attesterStartTimestamp(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        attesterStateTreeLeafCount(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        attesterStateTreeRoot(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        attesterStateTreeRootExists(attesterId: BigNumberish, epoch: BigNumberish, root: BigNumberish, overrides?: CallOverrides): Promise<boolean>;
        chainid(overrides?: CallOverrides): Promise<number>;
        config(overrides?: CallOverrides): Promise<IUnirep.ConfigStructOutput>;
        decodeSignupControl(control: BigNumberish, overrides?: CallOverrides): Promise<[
            BigNumber,
            number,
            number
        ] & {
            attesterId: BigNumber;
            epoch: number;
            chainId: number;
        }>;
        decodeSignupSignals(publicSignals: BigNumberish[], overrides?: CallOverrides): Promise<IUnirep.SignupSignalsStructOutput>;
        decodeUserStateTransitionControl(control: BigNumberish, overrides?: CallOverrides): Promise<[
            BigNumber,
            number
        ] & {
            attesterId: BigNumber;
            toEpoch: number;
        }>;
        decodeUserStateTransitionSignals(publicSignals: BigNumberish[], overrides?: CallOverrides): Promise<IUnirep.UserStateTransitionSignalsStructOutput>;
        defaultDataHash(overrides?: CallOverrides): Promise<BigNumber>;
        epochTreeDepth(overrides?: CallOverrides): Promise<number>;
        fieldCount(overrides?: CallOverrides): Promise<number>;
        historyTreeDepth(overrides?: CallOverrides): Promise<number>;
        manualUserSignUp(epoch: BigNumberish, identityCommitment: BigNumberish, leafIdentityHash: BigNumberish, initialData: BigNumberish[], overrides?: CallOverrides): Promise<void>;
        numEpochKeyNoncePerEpoch(overrides?: CallOverrides): Promise<number>;
        replFieldBits(overrides?: CallOverrides): Promise<number>;
        replNonceBits(overrides?: CallOverrides): Promise<number>;
        signupVerifier(overrides?: CallOverrides): Promise<string>;
        stateTreeDepth(overrides?: CallOverrides): Promise<number>;
        sumFieldCount(overrides?: CallOverrides): Promise<number>;
        updateEpochIfNeeded(attesterId: BigNumberish, overrides?: CallOverrides): Promise<number>;
        usedNullifiers(arg0: BigNumberish, overrides?: CallOverrides): Promise<boolean>;
        userSignUp(publicSignals: BigNumberish[], proof: BigNumberish[], overrides?: CallOverrides): Promise<void>;
        userStateTransition(publicSignals: BigNumberish[], proof: BigNumberish[], overrides?: CallOverrides): Promise<void>;
        userStateTransitionVerifier(overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        "Attestation(uint48,uint256,uint160,uint256,uint256)"(epoch?: BigNumberish | null, epochKey?: BigNumberish | null, attesterId?: BigNumberish | null, fieldIndex?: null, change?: null): AttestationEventFilter;
        Attestation(epoch?: BigNumberish | null, epochKey?: BigNumberish | null, attesterId?: BigNumberish | null, fieldIndex?: null, change?: null): AttestationEventFilter;
        "AttesterSignedUp(uint160,uint48,uint48)"(attesterId?: BigNumberish | null, epochLength?: null, timestamp?: null): AttesterSignedUpEventFilter;
        AttesterSignedUp(attesterId?: BigNumberish | null, epochLength?: null, timestamp?: null): AttesterSignedUpEventFilter;
        "EpochEnded(uint48,uint160)"(epoch?: BigNumberish | null, attesterId?: BigNumberish | null): EpochEndedEventFilter;
        EpochEnded(epoch?: BigNumberish | null, attesterId?: BigNumberish | null): EpochEndedEventFilter;
        "EpochTreeLeaf(uint48,uint160,uint256,uint256)"(epoch?: BigNumberish | null, attesterId?: BigNumberish | null, index?: BigNumberish | null, leaf?: null): EpochTreeLeafEventFilter;
        EpochTreeLeaf(epoch?: BigNumberish | null, attesterId?: BigNumberish | null, index?: BigNumberish | null, leaf?: null): EpochTreeLeafEventFilter;
        "HistoryTreeLeaf(uint160,uint256)"(attesterId?: BigNumberish | null, leaf?: null): HistoryTreeLeafEventFilter;
        HistoryTreeLeaf(attesterId?: BigNumberish | null, leaf?: null): HistoryTreeLeafEventFilter;
        "StateTreeLeaf(uint48,uint160,uint256,uint256)"(epoch?: BigNumberish | null, attesterId?: BigNumberish | null, index?: BigNumberish | null, leaf?: null): StateTreeLeafEventFilter;
        StateTreeLeaf(epoch?: BigNumberish | null, attesterId?: BigNumberish | null, index?: BigNumberish | null, leaf?: null): StateTreeLeafEventFilter;
        "UserSignedUp(uint48,uint256,uint160,uint256)"(epoch?: BigNumberish | null, identityCommitment?: BigNumberish | null, attesterId?: BigNumberish | null, leafIndex?: null): UserSignedUpEventFilter;
        UserSignedUp(epoch?: BigNumberish | null, identityCommitment?: BigNumberish | null, attesterId?: BigNumberish | null, leafIndex?: null): UserSignedUpEventFilter;
        "UserStateTransitioned(uint48,uint160,uint256,uint256,uint256)"(epoch?: BigNumberish | null, attesterId?: BigNumberish | null, leafIndex?: BigNumberish | null, hashedLeaf?: null, nullifier?: null): UserStateTransitionedEventFilter;
        UserStateTransitioned(epoch?: BigNumberish | null, attesterId?: BigNumberish | null, leafIndex?: BigNumberish | null, hashedLeaf?: null, nullifier?: null): UserStateTransitionedEventFilter;
    };
    estimateGas: {
        SNARK_SCALAR_FIELD(overrides?: CallOverrides): Promise<BigNumber>;
        _updateEpochIfNeeded(attesterId: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        attest(epochKey: BigNumberish, epoch: BigNumberish, fieldIndex: BigNumberish, change: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        attestationCount(overrides?: CallOverrides): Promise<BigNumber>;
        attesterCurrentEpoch(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        attesterEpochLength(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        attesterEpochRemainingTime(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        attesterEpochRoot(attesterId: BigNumberish, epoch: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        attesterMemberCount(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        attesterSemaphoreGroupRoot(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        attesterSignUp(epochLength: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        attesterSignUpViaRelayer(attester: string, epochLength: BigNumberish, signature: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        attesterStartTimestamp(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        attesterStateTreeLeafCount(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        attesterStateTreeRoot(attesterId: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        attesterStateTreeRootExists(attesterId: BigNumberish, epoch: BigNumberish, root: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        chainid(overrides?: CallOverrides): Promise<BigNumber>;
        config(overrides?: CallOverrides): Promise<BigNumber>;
        decodeSignupControl(control: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        decodeSignupSignals(publicSignals: BigNumberish[], overrides?: CallOverrides): Promise<BigNumber>;
        decodeUserStateTransitionControl(control: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        decodeUserStateTransitionSignals(publicSignals: BigNumberish[], overrides?: CallOverrides): Promise<BigNumber>;
        defaultDataHash(overrides?: CallOverrides): Promise<BigNumber>;
        epochTreeDepth(overrides?: CallOverrides): Promise<BigNumber>;
        fieldCount(overrides?: CallOverrides): Promise<BigNumber>;
        historyTreeDepth(overrides?: CallOverrides): Promise<BigNumber>;
        manualUserSignUp(epoch: BigNumberish, identityCommitment: BigNumberish, leafIdentityHash: BigNumberish, initialData: BigNumberish[], overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        numEpochKeyNoncePerEpoch(overrides?: CallOverrides): Promise<BigNumber>;
        replFieldBits(overrides?: CallOverrides): Promise<BigNumber>;
        replNonceBits(overrides?: CallOverrides): Promise<BigNumber>;
        signupVerifier(overrides?: CallOverrides): Promise<BigNumber>;
        stateTreeDepth(overrides?: CallOverrides): Promise<BigNumber>;
        sumFieldCount(overrides?: CallOverrides): Promise<BigNumber>;
        updateEpochIfNeeded(attesterId: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        usedNullifiers(arg0: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        userSignUp(publicSignals: BigNumberish[], proof: BigNumberish[], overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        userStateTransition(publicSignals: BigNumberish[], proof: BigNumberish[], overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        userStateTransitionVerifier(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        SNARK_SCALAR_FIELD(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        _updateEpochIfNeeded(attesterId: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        attest(epochKey: BigNumberish, epoch: BigNumberish, fieldIndex: BigNumberish, change: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        attestationCount(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        attesterCurrentEpoch(attesterId: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        attesterEpochLength(attesterId: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        attesterEpochRemainingTime(attesterId: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        attesterEpochRoot(attesterId: BigNumberish, epoch: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        attesterMemberCount(attesterId: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        attesterSemaphoreGroupRoot(attesterId: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        attesterSignUp(epochLength: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        attesterSignUpViaRelayer(attester: string, epochLength: BigNumberish, signature: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        attesterStartTimestamp(attesterId: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        attesterStateTreeLeafCount(attesterId: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        attesterStateTreeRoot(attesterId: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        attesterStateTreeRootExists(attesterId: BigNumberish, epoch: BigNumberish, root: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        chainid(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        config(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decodeSignupControl(control: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decodeSignupSignals(publicSignals: BigNumberish[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decodeUserStateTransitionControl(control: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decodeUserStateTransitionSignals(publicSignals: BigNumberish[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        defaultDataHash(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        epochTreeDepth(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        fieldCount(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        historyTreeDepth(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        manualUserSignUp(epoch: BigNumberish, identityCommitment: BigNumberish, leafIdentityHash: BigNumberish, initialData: BigNumberish[], overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        numEpochKeyNoncePerEpoch(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        replFieldBits(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        replNonceBits(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        signupVerifier(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        stateTreeDepth(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        sumFieldCount(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        updateEpochIfNeeded(attesterId: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        usedNullifiers(arg0: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        userSignUp(publicSignals: BigNumberish[], proof: BigNumberish[], overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        userStateTransition(publicSignals: BigNumberish[], proof: BigNumberish[], overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        userStateTransitionVerifier(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
