import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "../common.js";
export type E3Struct = {
    seed: BigNumberish;
    committeeSize: BigNumberish;
    requestBlock: BigNumberish;
    inputWindow: [BigNumberish, BigNumberish];
    encryptionSchemeId: BytesLike;
    e3Program: AddressLike;
    paramSet: BigNumberish;
    customParams: BytesLike;
    decryptionVerifier: AddressLike;
    pkVerifier: AddressLike;
    committeePublicKey: BytesLike;
    ciphertextOutput: BytesLike;
    plaintextOutput: BytesLike;
    requester: AddressLike;
    proofAggregationEnabled: boolean;
};
export type E3StructOutput = [seed: bigint, committeeSize: bigint, requestBlock: bigint, inputWindow: [bigint, bigint], encryptionSchemeId: string, e3Program: string, paramSet: bigint, customParams: string, decryptionVerifier: string, pkVerifier: string, committeePublicKey: string, ciphertextOutput: string, plaintextOutput: string, requester: string, proofAggregationEnabled: boolean] & {
    seed: bigint;
    committeeSize: bigint;
    requestBlock: bigint;
    inputWindow: [bigint, bigint];
    encryptionSchemeId: string;
    e3Program: string;
    paramSet: bigint;
    customParams: string;
    decryptionVerifier: string;
    pkVerifier: string;
    committeePublicKey: string;
    ciphertextOutput: string;
    plaintextOutput: string;
    requester: string;
    proofAggregationEnabled: boolean;
};
export declare namespace IInterfold {
    type PricingConfigStruct = {
        keyGenFixedPerNode: BigNumberish;
        keyGenPerEncryptionProof: BigNumberish;
        coordinationPerPair: BigNumberish;
        availabilityPerNodePerSec: BigNumberish;
        decryptionPerNode: BigNumberish;
        publicationBase: BigNumberish;
        verificationPerProof: BigNumberish;
        protocolTreasury: AddressLike;
        marginBps: BigNumberish;
        protocolShareBps: BigNumberish;
        dkgUtilizationBps: BigNumberish;
        computeUtilizationBps: BigNumberish;
        decryptUtilizationBps: BigNumberish;
        minCommitteeSize: BigNumberish;
        minThreshold: BigNumberish;
    };
    type PricingConfigStructOutput = [keyGenFixedPerNode: bigint, keyGenPerEncryptionProof: bigint, coordinationPerPair: bigint, availabilityPerNodePerSec: bigint, decryptionPerNode: bigint, publicationBase: bigint, verificationPerProof: bigint, protocolTreasury: string, marginBps: bigint, protocolShareBps: bigint, dkgUtilizationBps: bigint, computeUtilizationBps: bigint, decryptUtilizationBps: bigint, minCommitteeSize: bigint, minThreshold: bigint] & {
        keyGenFixedPerNode: bigint;
        keyGenPerEncryptionProof: bigint;
        coordinationPerPair: bigint;
        availabilityPerNodePerSec: bigint;
        decryptionPerNode: bigint;
        publicationBase: bigint;
        verificationPerProof: bigint;
        protocolTreasury: string;
        marginBps: bigint;
        protocolShareBps: bigint;
        dkgUtilizationBps: bigint;
        computeUtilizationBps: bigint;
        decryptUtilizationBps: bigint;
        minCommitteeSize: bigint;
        minThreshold: bigint;
    };
    type E3TimeoutConfigStruct = {
        dkgWindow: BigNumberish;
        computeWindow: BigNumberish;
        decryptionWindow: BigNumberish;
    };
    type E3TimeoutConfigStructOutput = [dkgWindow: bigint, computeWindow: bigint, decryptionWindow: bigint] & {
        dkgWindow: bigint;
        computeWindow: bigint;
        decryptionWindow: bigint;
    };
    type E3DeadlinesStruct = {
        dkgDeadline: BigNumberish;
        computeDeadline: BigNumberish;
        decryptionDeadline: BigNumberish;
    };
    type E3DeadlinesStructOutput = [dkgDeadline: bigint, computeDeadline: bigint, decryptionDeadline: bigint] & {
        dkgDeadline: bigint;
        computeDeadline: bigint;
        decryptionDeadline: bigint;
    };
    type E3RequestParamsStruct = {
        committeeSize: BigNumberish;
        inputWindow: [BigNumberish, BigNumberish];
        e3Program: AddressLike;
        paramSet: BigNumberish;
        computeProviderParams: BytesLike;
        customParams: BytesLike;
        proofAggregationEnabled: boolean;
    };
    type E3RequestParamsStructOutput = [committeeSize: bigint, inputWindow: [bigint, bigint], e3Program: string, paramSet: bigint, computeProviderParams: string, customParams: string, proofAggregationEnabled: boolean] & {
        committeeSize: bigint;
        inputWindow: [bigint, bigint];
        e3Program: string;
        paramSet: bigint;
        computeProviderParams: string;
        customParams: string;
        proofAggregationEnabled: boolean;
    };
}
export interface InterfoldInterface extends Interface {
    getFunction(nameOrSignature: "MAX_COMMITTEE_SIZE" | "MAX_DURATION_CAP" | "MAX_MARGIN_BPS" | "MAX_PROTOCOL_SHARE_BPS" | "MAX_TIMEOUT_WINDOW" | "acceptOwnership" | "bondingRegistry" | "checkFailureCondition" | "ciphernodeRegistry" | "claimReward" | "claimRewards" | "committeeThresholds" | "decryptionVerifiers" | "disableE3Program" | "disableEncryptionScheme" | "e3Payments" | "e3Programs" | "e3RefundManager" | "e3s" | "enableE3Program" | "escrowSlashedFunds" | "feeToken" | "getDeadlines" | "getDecryptionVerifier" | "getE3" | "getE3Quote" | "getE3Stage" | "getFailureReason" | "getPkVerifier" | "getPricingConfig" | "getRequester" | "getTimeoutConfig" | "initialize" | "isFeeTokenAllowed" | "markE3Failed" | "markFailedGracePeriod" | "maxDuration" | "nexte3Id" | "onCommitteeFinalized" | "onCommitteePublished" | "onE3Failed" | "owner" | "paramSetRegistry" | "pendingOwner" | "pendingReward" | "pendingTreasuryClaim" | "pkVerifiers" | "processE3Failure" | "publishCiphertextOutput" | "publishPlaintextOutput" | "renounceOwnership" | "request" | "setBondingRegistry" | "setCiphernodeRegistry" | "setCommitteeThresholds" | "setDecryptionVerifier" | "setE3RefundManager" | "setFeeToken" | "setFeeTokenAllowed" | "setMarkFailedGracePeriod" | "setMaxDuration" | "setParamSet" | "setPkVerifier" | "setPricingConfig" | "setSlashingManager" | "setTimeoutConfig" | "slashingManager" | "supportsInterface" | "transferOwnership" | "treasuryClaim"): FunctionFragment;
    getEvent(nameOrSignatureOrTopic: "BondingRegistrySet" | "CiphernodeRegistrySet" | "CiphertextOutputPublished" | "CommitteeFinalized" | "CommitteeFormed" | "CommitteeThresholdsUpdated" | "E3Failed" | "E3FailureProcessed" | "E3ProgramDisabled" | "E3ProgramEnabled" | "E3RefundManagerSet" | "E3Requested" | "E3StageChanged" | "EncryptionSchemeDisabled" | "EncryptionSchemeEnabled" | "FeeTokenAllowed" | "FeeTokenSet" | "Initialized" | "InputPublished" | "MarkFailedGracePeriodSet" | "MaxDurationSet" | "OwnershipTransferStarted" | "OwnershipTransferred" | "ParamSetRegistered" | "ParamSetUpdated" | "PkVerifierSet" | "PlaintextOutputPublished" | "PricingConfigUpdated" | "RewardClaimed" | "RewardCredited" | "RewardsDistributed" | "SlashedFundsEscrowed" | "SlashingManagerSet" | "TimeoutConfigUpdated" | "TreasuryClaimed" | "TreasuryCredited"): EventFragment;
    encodeFunctionData(functionFragment: 'MAX_COMMITTEE_SIZE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MAX_DURATION_CAP', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MAX_MARGIN_BPS', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MAX_PROTOCOL_SHARE_BPS', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MAX_TIMEOUT_WINDOW', values?: undefined): string;
    encodeFunctionData(functionFragment: 'acceptOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'bondingRegistry', values?: undefined): string;
    encodeFunctionData(functionFragment: 'checkFailureCondition', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'ciphernodeRegistry', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claimReward', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'claimRewards', values: [BigNumberish[]]): string;
    encodeFunctionData(functionFragment: 'committeeThresholds', values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: 'decryptionVerifiers', values: [BytesLike]): string;
    encodeFunctionData(functionFragment: 'disableE3Program', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'disableEncryptionScheme', values: [BytesLike]): string;
    encodeFunctionData(functionFragment: 'e3Payments', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'e3Programs', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'e3RefundManager', values?: undefined): string;
    encodeFunctionData(functionFragment: 'e3s', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'enableE3Program', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'escrowSlashedFunds', values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: 'feeToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getDeadlines', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'getDecryptionVerifier', values: [BytesLike]): string;
    encodeFunctionData(functionFragment: 'getE3', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'getE3Quote', values: [IInterfold.E3RequestParamsStruct]): string;
    encodeFunctionData(functionFragment: 'getE3Stage', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'getFailureReason', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'getPkVerifier', values: [BytesLike]): string;
    encodeFunctionData(functionFragment: 'getPricingConfig', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getRequester', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'getTimeoutConfig', values?: undefined): string;
    encodeFunctionData(functionFragment: 'initialize', values: [AddressLike, AddressLike, AddressLike, AddressLike, AddressLike, BigNumberish, IInterfold.E3TimeoutConfigStruct]): string;
    encodeFunctionData(functionFragment: 'isFeeTokenAllowed', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'markE3Failed', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'markFailedGracePeriod', values?: undefined): string;
    encodeFunctionData(functionFragment: 'maxDuration', values?: undefined): string;
    encodeFunctionData(functionFragment: 'nexte3Id', values?: undefined): string;
    encodeFunctionData(functionFragment: 'onCommitteeFinalized', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'onCommitteePublished', values: [BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: 'onE3Failed', values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'paramSetRegistry', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'pendingOwner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pendingReward', values: [BigNumberish, AddressLike]): string;
    encodeFunctionData(functionFragment: 'pendingTreasuryClaim', values: [AddressLike, AddressLike]): string;
    encodeFunctionData(functionFragment: 'pkVerifiers', values: [BytesLike]): string;
    encodeFunctionData(functionFragment: 'processE3Failure', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'publishCiphertextOutput', values: [BigNumberish, BytesLike, BytesLike]): string;
    encodeFunctionData(functionFragment: 'publishPlaintextOutput', values: [BigNumberish, BytesLike, BytesLike]): string;
    encodeFunctionData(functionFragment: 'renounceOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'request', values: [IInterfold.E3RequestParamsStruct]): string;
    encodeFunctionData(functionFragment: 'setBondingRegistry', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setCiphernodeRegistry', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setCommitteeThresholds', values: [BigNumberish, [BigNumberish, BigNumberish]]): string;
    encodeFunctionData(functionFragment: 'setDecryptionVerifier', values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: 'setE3RefundManager', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setFeeToken', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setFeeTokenAllowed', values: [AddressLike, boolean]): string;
    encodeFunctionData(functionFragment: 'setMarkFailedGracePeriod', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'setMaxDuration', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'setParamSet', values: [BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: 'setPkVerifier', values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: 'setPricingConfig', values: [IInterfold.PricingConfigStruct]): string;
    encodeFunctionData(functionFragment: 'setSlashingManager', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setTimeoutConfig', values: [IInterfold.E3TimeoutConfigStruct]): string;
    encodeFunctionData(functionFragment: 'slashingManager', values?: undefined): string;
    encodeFunctionData(functionFragment: 'supportsInterface', values: [BytesLike]): string;
    encodeFunctionData(functionFragment: 'transferOwnership', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'treasuryClaim', values: [AddressLike]): string;
    decodeFunctionResult(functionFragment: 'MAX_COMMITTEE_SIZE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MAX_DURATION_CAP', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MAX_MARGIN_BPS', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MAX_PROTOCOL_SHARE_BPS', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MAX_TIMEOUT_WINDOW', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'acceptOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'bondingRegistry', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'checkFailureCondition', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ciphernodeRegistry', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimReward', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'committeeThresholds', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'decryptionVerifiers', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'disableE3Program', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'disableEncryptionScheme', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'e3Payments', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'e3Programs', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'e3RefundManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'e3s', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'enableE3Program', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'escrowSlashedFunds', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'feeToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getDeadlines', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getDecryptionVerifier', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getE3', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getE3Quote', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getE3Stage', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getFailureReason', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPkVerifier', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPricingConfig', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRequester', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTimeoutConfig', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'initialize', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isFeeTokenAllowed', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'markE3Failed', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'markFailedGracePeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'maxDuration', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'nexte3Id', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'onCommitteeFinalized', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'onCommitteePublished', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'onE3Failed', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'paramSetRegistry', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendingOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendingReward', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendingTreasuryClaim', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pkVerifiers', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'processE3Failure', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'publishCiphertextOutput', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'publishPlaintextOutput', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'request', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setBondingRegistry', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setCiphernodeRegistry', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setCommitteeThresholds', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setDecryptionVerifier', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setE3RefundManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFeeToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setFeeTokenAllowed', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setMarkFailedGracePeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setMaxDuration', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setParamSet', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setPkVerifier', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setPricingConfig', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setSlashingManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setTimeoutConfig', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'slashingManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'supportsInterface', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'treasuryClaim', data: BytesLike): Result;
}
export declare namespace BondingRegistrySetEvent {
    type InputTuple = [bondingRegistry: AddressLike];
    type OutputTuple = [bondingRegistry: string];
    interface OutputObject {
        bondingRegistry: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace CiphernodeRegistrySetEvent {
    type InputTuple = [ciphernodeRegistry: AddressLike];
    type OutputTuple = [ciphernodeRegistry: string];
    interface OutputObject {
        ciphernodeRegistry: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace CiphertextOutputPublishedEvent {
    type InputTuple = [e3Id: BigNumberish, ciphertextOutput: BytesLike];
    type OutputTuple = [e3Id: bigint, ciphertextOutput: string];
    interface OutputObject {
        e3Id: bigint;
        ciphertextOutput: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace CommitteeFinalizedEvent {
    type InputTuple = [e3Id: BigNumberish];
    type OutputTuple = [e3Id: bigint];
    interface OutputObject {
        e3Id: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace CommitteeFormedEvent {
    type InputTuple = [e3Id: BigNumberish];
    type OutputTuple = [e3Id: bigint];
    interface OutputObject {
        e3Id: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace CommitteeThresholdsUpdatedEvent {
    type InputTuple = [size: BigNumberish, threshold: [BigNumberish, BigNumberish]];
    type OutputTuple = [size: bigint, threshold: [bigint, bigint]];
    interface OutputObject {
        size: bigint;
        threshold: [bigint, bigint];
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace E3FailedEvent {
    type InputTuple = [e3Id: BigNumberish, failedAtStage: BigNumberish, reason: BigNumberish];
    type OutputTuple = [e3Id: bigint, failedAtStage: bigint, reason: bigint];
    interface OutputObject {
        e3Id: bigint;
        failedAtStage: bigint;
        reason: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace E3FailureProcessedEvent {
    type InputTuple = [e3Id: BigNumberish, paymentAmount: BigNumberish, honestNodeCount: BigNumberish];
    type OutputTuple = [e3Id: bigint, paymentAmount: bigint, honestNodeCount: bigint];
    interface OutputObject {
        e3Id: bigint;
        paymentAmount: bigint;
        honestNodeCount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace E3ProgramDisabledEvent {
    type InputTuple = [e3Program: AddressLike];
    type OutputTuple = [e3Program: string];
    interface OutputObject {
        e3Program: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace E3ProgramEnabledEvent {
    type InputTuple = [e3Program: AddressLike];
    type OutputTuple = [e3Program: string];
    interface OutputObject {
        e3Program: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace E3RefundManagerSetEvent {
    type InputTuple = [e3RefundManager: AddressLike];
    type OutputTuple = [e3RefundManager: string];
    interface OutputObject {
        e3RefundManager: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace E3RequestedEvent {
    type InputTuple = [e3Id: BigNumberish, e3: E3Struct, e3Program: AddressLike];
    type OutputTuple = [e3Id: bigint, e3: E3StructOutput, e3Program: string];
    interface OutputObject {
        e3Id: bigint;
        e3: E3StructOutput;
        e3Program: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace E3StageChangedEvent {
    type InputTuple = [e3Id: BigNumberish, previousStage: BigNumberish, newStage: BigNumberish];
    type OutputTuple = [e3Id: bigint, previousStage: bigint, newStage: bigint];
    interface OutputObject {
        e3Id: bigint;
        previousStage: bigint;
        newStage: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace EncryptionSchemeDisabledEvent {
    type InputTuple = [encryptionSchemeId: BytesLike];
    type OutputTuple = [encryptionSchemeId: string];
    interface OutputObject {
        encryptionSchemeId: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace EncryptionSchemeEnabledEvent {
    type InputTuple = [encryptionSchemeId: BytesLike];
    type OutputTuple = [encryptionSchemeId: string];
    interface OutputObject {
        encryptionSchemeId: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace FeeTokenAllowedEvent {
    type InputTuple = [token: AddressLike, allowed: boolean];
    type OutputTuple = [token: string, allowed: boolean];
    interface OutputObject {
        token: string;
        allowed: boolean;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace FeeTokenSetEvent {
    type InputTuple = [feeToken: AddressLike];
    type OutputTuple = [feeToken: string];
    interface OutputObject {
        feeToken: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace InitializedEvent {
    type InputTuple = [version: BigNumberish];
    type OutputTuple = [version: bigint];
    interface OutputObject {
        version: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace InputPublishedEvent {
    type InputTuple = [e3Id: BigNumberish, data: BytesLike, inputHash: BigNumberish, index: BigNumberish];
    type OutputTuple = [e3Id: bigint, data: string, inputHash: bigint, index: bigint];
    interface OutputObject {
        e3Id: bigint;
        data: string;
        inputHash: bigint;
        index: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace MarkFailedGracePeriodSetEvent {
    type InputTuple = [gracePeriod: BigNumberish];
    type OutputTuple = [gracePeriod: bigint];
    interface OutputObject {
        gracePeriod: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace MaxDurationSetEvent {
    type InputTuple = [maxDuration: BigNumberish];
    type OutputTuple = [maxDuration: bigint];
    interface OutputObject {
        maxDuration: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace OwnershipTransferStartedEvent {
    type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike];
    type OutputTuple = [previousOwner: string, newOwner: string];
    interface OutputObject {
        previousOwner: string;
        newOwner: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace OwnershipTransferredEvent {
    type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike];
    type OutputTuple = [previousOwner: string, newOwner: string];
    interface OutputObject {
        previousOwner: string;
        newOwner: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ParamSetRegisteredEvent {
    type InputTuple = [paramSet: BigNumberish, encodedParams: BytesLike];
    type OutputTuple = [paramSet: bigint, encodedParams: string];
    interface OutputObject {
        paramSet: bigint;
        encodedParams: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ParamSetUpdatedEvent {
    type InputTuple = [paramSet: BigNumberish, previousEncodedParams: BytesLike, newEncodedParams: BytesLike];
    type OutputTuple = [paramSet: bigint, previousEncodedParams: string, newEncodedParams: string];
    interface OutputObject {
        paramSet: bigint;
        previousEncodedParams: string;
        newEncodedParams: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace PkVerifierSetEvent {
    type InputTuple = [encryptionSchemeId: BytesLike, pkVerifier: AddressLike];
    type OutputTuple = [encryptionSchemeId: string, pkVerifier: string];
    interface OutputObject {
        encryptionSchemeId: string;
        pkVerifier: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace PlaintextOutputPublishedEvent {
    type InputTuple = [e3Id: BigNumberish, plaintextOutput: BytesLike, proof: BytesLike];
    type OutputTuple = [e3Id: bigint, plaintextOutput: string, proof: string];
    interface OutputObject {
        e3Id: bigint;
        plaintextOutput: string;
        proof: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace PricingConfigUpdatedEvent {
    type InputTuple = [config: IInterfold.PricingConfigStruct];
    type OutputTuple = [config: IInterfold.PricingConfigStructOutput];
    interface OutputObject {
        config: IInterfold.PricingConfigStructOutput;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RewardClaimedEvent {
    type InputTuple = [e3Id: BigNumberish, account: AddressLike, token: AddressLike, amount: BigNumberish];
    type OutputTuple = [e3Id: bigint, account: string, token: string, amount: bigint];
    interface OutputObject {
        e3Id: bigint;
        account: string;
        token: string;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RewardCreditedEvent {
    type InputTuple = [e3Id: BigNumberish, account: AddressLike, token: AddressLike, amount: BigNumberish];
    type OutputTuple = [e3Id: bigint, account: string, token: string, amount: bigint];
    interface OutputObject {
        e3Id: bigint;
        account: string;
        token: string;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RewardsDistributedEvent {
    type InputTuple = [e3Id: BigNumberish, nodes: AddressLike[], amounts: BigNumberish[]];
    type OutputTuple = [e3Id: bigint, nodes: string[], amounts: bigint[]];
    interface OutputObject {
        e3Id: bigint;
        nodes: string[];
        amounts: bigint[];
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SlashedFundsEscrowedEvent {
    type InputTuple = [e3Id: BigNumberish, amount: BigNumberish];
    type OutputTuple = [e3Id: bigint, amount: bigint];
    interface OutputObject {
        e3Id: bigint;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SlashingManagerSetEvent {
    type InputTuple = [slashingManager: AddressLike];
    type OutputTuple = [slashingManager: string];
    interface OutputObject {
        slashingManager: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TimeoutConfigUpdatedEvent {
    type InputTuple = [config: IInterfold.E3TimeoutConfigStruct];
    type OutputTuple = [config: IInterfold.E3TimeoutConfigStructOutput];
    interface OutputObject {
        config: IInterfold.E3TimeoutConfigStructOutput;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TreasuryClaimedEvent {
    type InputTuple = [treasury: AddressLike, token: AddressLike, amount: BigNumberish];
    type OutputTuple = [treasury: string, token: string, amount: bigint];
    interface OutputObject {
        treasury: string;
        token: string;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TreasuryCreditedEvent {
    type InputTuple = [e3Id: BigNumberish, treasury: AddressLike, token: AddressLike, amount: BigNumberish];
    type OutputTuple = [e3Id: bigint, treasury: string, token: string, amount: bigint];
    interface OutputObject {
        e3Id: bigint;
        treasury: string;
        token: string;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export interface Interfold extends BaseContract {
    connect(runner?: ContractRunner | null): Interfold;
    waitForDeployment(): Promise<this>;
    interface: InterfoldInterface;
    queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
    listeners(eventName?: string): Promise<Array<Listener>>;
    removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
    MAX_COMMITTEE_SIZE: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    MAX_DURATION_CAP: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    MAX_MARGIN_BPS: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    MAX_PROTOCOL_SHARE_BPS: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    MAX_TIMEOUT_WINDOW: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    acceptOwnership: TypedContractMethod<[
    ], [
        void
    ], 'nonpayable'>;
    bondingRegistry: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    checkFailureCondition: TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        [boolean, bigint] & {
            canFail: boolean;
            reason: bigint;
        }
    ], 'view'>;
    ciphernodeRegistry: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    claimReward: TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        bigint
    ], 'nonpayable'>;
    claimRewards: TypedContractMethod<[
        e3Ids: BigNumberish[]
    ], [
        void
    ], 'nonpayable'>;
    committeeThresholds: TypedContractMethod<[
        arg0: BigNumberish,
        arg1: BigNumberish
    ], [
        bigint
    ], 'view'>;
    decryptionVerifiers: TypedContractMethod<[
        encryptionSchemeId: BytesLike
    ], [
        string
    ], 'view'>;
    disableE3Program: TypedContractMethod<[
        e3Program: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    disableEncryptionScheme: TypedContractMethod<[
        encryptionSchemeId: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    e3Payments: TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        bigint
    ], 'view'>;
    e3Programs: TypedContractMethod<[
        e3Program: AddressLike
    ], [
        boolean
    ], 'view'>;
    e3RefundManager: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    e3s: TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        [bigint, bigint, bigint, string, string, bigint, string, string, string, string, string, string, string, boolean] & {
            seed: bigint;
            committeeSize: bigint;
            requestBlock: bigint;
            encryptionSchemeId: string;
            e3Program: string;
            paramSet: bigint;
            customParams: string;
            decryptionVerifier: string;
            pkVerifier: string;
            committeePublicKey: string;
            ciphertextOutput: string;
            plaintextOutput: string;
            requester: string;
            proofAggregationEnabled: boolean;
        }
    ], 'view'>;
    enableE3Program: TypedContractMethod<[
        e3Program: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    escrowSlashedFunds: TypedContractMethod<[
        e3Id: BigNumberish,
        amount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    feeToken: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getDeadlines: TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        IInterfold.E3DeadlinesStructOutput
    ], 'view'>;
    getDecryptionVerifier: TypedContractMethod<[
        encryptionSchemeId: BytesLike
    ], [
        string
    ], 'view'>;
    getE3: TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        E3StructOutput
    ], 'view'>;
    getE3Quote: TypedContractMethod<[
        requestParams: IInterfold.E3RequestParamsStruct
    ], [
        bigint
    ], 'view'>;
    getE3Stage: TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        bigint
    ], 'view'>;
    getFailureReason: TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        bigint
    ], 'view'>;
    getPkVerifier: TypedContractMethod<[
        encryptionSchemeId: BytesLike
    ], [
        string
    ], 'view'>;
    getPricingConfig: TypedContractMethod<[
    ], [
        IInterfold.PricingConfigStructOutput
    ], 'view'>;
    getRequester: TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        string
    ], 'view'>;
    getTimeoutConfig: TypedContractMethod<[
    ], [
        IInterfold.E3TimeoutConfigStructOutput
    ], 'view'>;
    initialize: TypedContractMethod<[
        _owner: AddressLike,
        _ciphernodeRegistry: AddressLike,
        _bondingRegistry: AddressLike,
        _e3RefundManager: AddressLike,
        _feeToken: AddressLike,
        _maxDuration: BigNumberish,
        config: IInterfold.E3TimeoutConfigStruct
    ], [
        void
    ], 'nonpayable'>;
    isFeeTokenAllowed: TypedContractMethod<[
        token: AddressLike
    ], [
        boolean
    ], 'view'>;
    markE3Failed: TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        bigint
    ], 'nonpayable'>;
    markFailedGracePeriod: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    maxDuration: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    nexte3Id: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    onCommitteeFinalized: TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    onCommitteePublished: TypedContractMethod<[
        e3Id: BigNumberish,
        committeePublicKey: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    onE3Failed: TypedContractMethod<[
        e3Id: BigNumberish,
        reason: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    owner: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    paramSetRegistry: TypedContractMethod<[
        arg0: BigNumberish
    ], [
        string
    ], 'view'>;
    pendingOwner: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    pendingReward: TypedContractMethod<[
        e3Id: BigNumberish,
        account: AddressLike
    ], [
        bigint
    ], 'view'>;
    pendingTreasuryClaim: TypedContractMethod<[
        treasury: AddressLike,
        token: AddressLike
    ], [
        bigint
    ], 'view'>;
    pkVerifiers: TypedContractMethod<[
        encryptionSchemeId: BytesLike
    ], [
        string
    ], 'view'>;
    processE3Failure: TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    publishCiphertextOutput: TypedContractMethod<[
        e3Id: BigNumberish,
        ciphertextOutput: BytesLike,
        proof: BytesLike
    ], [
        boolean
    ], 'nonpayable'>;
    publishPlaintextOutput: TypedContractMethod<[
        e3Id: BigNumberish,
        plaintextOutput: BytesLike,
        proof: BytesLike
    ], [
        boolean
    ], 'nonpayable'>;
    renounceOwnership: TypedContractMethod<[
    ], [
        void
    ], 'view'>;
    request: TypedContractMethod<[
        requestParams: IInterfold.E3RequestParamsStruct
    ], [
        [bigint, E3StructOutput] & {
            e3Id: bigint;
            e3: E3StructOutput;
        }
    ], 'nonpayable'>;
    setBondingRegistry: TypedContractMethod<[
        _bondingRegistry: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setCiphernodeRegistry: TypedContractMethod<[
        _ciphernodeRegistry: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setCommitteeThresholds: TypedContractMethod<[
        size: BigNumberish,
        threshold: [BigNumberish, BigNumberish]
    ], [
        void
    ], 'nonpayable'>;
    setDecryptionVerifier: TypedContractMethod<[
        encryptionSchemeId: BytesLike,
        decryptionVerifier: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setE3RefundManager: TypedContractMethod<[
        _e3RefundManager: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setFeeToken: TypedContractMethod<[
        _feeToken: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setFeeTokenAllowed: TypedContractMethod<[
        token: AddressLike,
        allowed: boolean
    ], [
        void
    ], 'nonpayable'>;
    setMarkFailedGracePeriod: TypedContractMethod<[
        gracePeriod: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    setMaxDuration: TypedContractMethod<[
        _maxDuration: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    setParamSet: TypedContractMethod<[
        paramSet: BigNumberish,
        encodedParams: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    setPkVerifier: TypedContractMethod<[
        encryptionSchemeId: BytesLike,
        pkVerifier: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setPricingConfig: TypedContractMethod<[
        config: IInterfold.PricingConfigStruct
    ], [
        void
    ], 'nonpayable'>;
    setSlashingManager: TypedContractMethod<[
        _slashingManager: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setTimeoutConfig: TypedContractMethod<[
        config: IInterfold.E3TimeoutConfigStruct
    ], [
        void
    ], 'nonpayable'>;
    slashingManager: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    supportsInterface: TypedContractMethod<[
        interfaceId: BytesLike
    ], [
        boolean
    ], 'view'>;
    transferOwnership: TypedContractMethod<[
        newOwner: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    treasuryClaim: TypedContractMethod<[
        token: AddressLike
    ], [
        bigint
    ], 'nonpayable'>;
    getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
    getFunction(nameOrSignature: 'MAX_COMMITTEE_SIZE'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'MAX_DURATION_CAP'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'MAX_MARGIN_BPS'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'MAX_PROTOCOL_SHARE_BPS'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'MAX_TIMEOUT_WINDOW'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'acceptOwnership'): TypedContractMethod<[
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'bondingRegistry'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'checkFailureCondition'): TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        [boolean, bigint] & {
            canFail: boolean;
            reason: bigint;
        }
    ], 'view'>;
    getFunction(nameOrSignature: 'ciphernodeRegistry'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'claimReward'): TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        bigint
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'claimRewards'): TypedContractMethod<[
        e3Ids: BigNumberish[]
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'committeeThresholds'): TypedContractMethod<[
        arg0: BigNumberish,
        arg1: BigNumberish
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'decryptionVerifiers'): TypedContractMethod<[
        encryptionSchemeId: BytesLike
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'disableE3Program'): TypedContractMethod<[
        e3Program: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'disableEncryptionScheme'): TypedContractMethod<[
        encryptionSchemeId: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'e3Payments'): TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'e3Programs'): TypedContractMethod<[
        e3Program: AddressLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'e3RefundManager'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'e3s'): TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        [bigint, bigint, bigint, string, string, bigint, string, string, string, string, string, string, string, boolean] & {
            seed: bigint;
            committeeSize: bigint;
            requestBlock: bigint;
            encryptionSchemeId: string;
            e3Program: string;
            paramSet: bigint;
            customParams: string;
            decryptionVerifier: string;
            pkVerifier: string;
            committeePublicKey: string;
            ciphertextOutput: string;
            plaintextOutput: string;
            requester: string;
            proofAggregationEnabled: boolean;
        }
    ], 'view'>;
    getFunction(nameOrSignature: 'enableE3Program'): TypedContractMethod<[
        e3Program: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'escrowSlashedFunds'): TypedContractMethod<[
        e3Id: BigNumberish,
        amount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'feeToken'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'getDeadlines'): TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        IInterfold.E3DeadlinesStructOutput
    ], 'view'>;
    getFunction(nameOrSignature: 'getDecryptionVerifier'): TypedContractMethod<[
        encryptionSchemeId: BytesLike
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'getE3'): TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        E3StructOutput
    ], 'view'>;
    getFunction(nameOrSignature: 'getE3Quote'): TypedContractMethod<[
        requestParams: IInterfold.E3RequestParamsStruct
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'getE3Stage'): TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'getFailureReason'): TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'getPkVerifier'): TypedContractMethod<[
        encryptionSchemeId: BytesLike
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'getPricingConfig'): TypedContractMethod<[
    ], [
        IInterfold.PricingConfigStructOutput
    ], 'view'>;
    getFunction(nameOrSignature: 'getRequester'): TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'getTimeoutConfig'): TypedContractMethod<[
    ], [
        IInterfold.E3TimeoutConfigStructOutput
    ], 'view'>;
    getFunction(nameOrSignature: 'initialize'): TypedContractMethod<[
        _owner: AddressLike,
        _ciphernodeRegistry: AddressLike,
        _bondingRegistry: AddressLike,
        _e3RefundManager: AddressLike,
        _feeToken: AddressLike,
        _maxDuration: BigNumberish,
        config: IInterfold.E3TimeoutConfigStruct
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'isFeeTokenAllowed'): TypedContractMethod<[
        token: AddressLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'markE3Failed'): TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        bigint
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'markFailedGracePeriod'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'maxDuration'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'nexte3Id'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'onCommitteeFinalized'): TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'onCommitteePublished'): TypedContractMethod<[
        e3Id: BigNumberish,
        committeePublicKey: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'onE3Failed'): TypedContractMethod<[
        e3Id: BigNumberish,
        reason: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'owner'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'paramSetRegistry'): TypedContractMethod<[
        arg0: BigNumberish
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'pendingOwner'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'pendingReward'): TypedContractMethod<[
        e3Id: BigNumberish,
        account: AddressLike
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'pendingTreasuryClaim'): TypedContractMethod<[
        treasury: AddressLike,
        token: AddressLike
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'pkVerifiers'): TypedContractMethod<[
        encryptionSchemeId: BytesLike
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'processE3Failure'): TypedContractMethod<[
        e3Id: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'publishCiphertextOutput'): TypedContractMethod<[
        e3Id: BigNumberish,
        ciphertextOutput: BytesLike,
        proof: BytesLike
    ], [
        boolean
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'publishPlaintextOutput'): TypedContractMethod<[
        e3Id: BigNumberish,
        plaintextOutput: BytesLike,
        proof: BytesLike
    ], [
        boolean
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'renounceOwnership'): TypedContractMethod<[
    ], [
        void
    ], 'view'>;
    getFunction(nameOrSignature: 'request'): TypedContractMethod<[
        requestParams: IInterfold.E3RequestParamsStruct
    ], [
        [bigint, E3StructOutput] & {
            e3Id: bigint;
            e3: E3StructOutput;
        }
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setBondingRegistry'): TypedContractMethod<[
        _bondingRegistry: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setCiphernodeRegistry'): TypedContractMethod<[
        _ciphernodeRegistry: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setCommitteeThresholds'): TypedContractMethod<[
        size: BigNumberish,
        threshold: [BigNumberish, BigNumberish]
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setDecryptionVerifier'): TypedContractMethod<[
        encryptionSchemeId: BytesLike,
        decryptionVerifier: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setE3RefundManager'): TypedContractMethod<[
        _e3RefundManager: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setFeeToken'): TypedContractMethod<[
        _feeToken: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setFeeTokenAllowed'): TypedContractMethod<[
        token: AddressLike,
        allowed: boolean
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setMarkFailedGracePeriod'): TypedContractMethod<[
        gracePeriod: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setMaxDuration'): TypedContractMethod<[
        _maxDuration: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setParamSet'): TypedContractMethod<[
        paramSet: BigNumberish,
        encodedParams: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setPkVerifier'): TypedContractMethod<[
        encryptionSchemeId: BytesLike,
        pkVerifier: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setPricingConfig'): TypedContractMethod<[
        config: IInterfold.PricingConfigStruct
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setSlashingManager'): TypedContractMethod<[
        _slashingManager: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setTimeoutConfig'): TypedContractMethod<[
        config: IInterfold.E3TimeoutConfigStruct
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'slashingManager'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'supportsInterface'): TypedContractMethod<[
        interfaceId: BytesLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'transferOwnership'): TypedContractMethod<[
        newOwner: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'treasuryClaim'): TypedContractMethod<[
        token: AddressLike
    ], [
        bigint
    ], 'nonpayable'>;
    getEvent(key: 'BondingRegistrySet'): TypedContractEvent<BondingRegistrySetEvent.InputTuple, BondingRegistrySetEvent.OutputTuple, BondingRegistrySetEvent.OutputObject>;
    getEvent(key: 'CiphernodeRegistrySet'): TypedContractEvent<CiphernodeRegistrySetEvent.InputTuple, CiphernodeRegistrySetEvent.OutputTuple, CiphernodeRegistrySetEvent.OutputObject>;
    getEvent(key: 'CiphertextOutputPublished'): TypedContractEvent<CiphertextOutputPublishedEvent.InputTuple, CiphertextOutputPublishedEvent.OutputTuple, CiphertextOutputPublishedEvent.OutputObject>;
    getEvent(key: 'CommitteeFinalized'): TypedContractEvent<CommitteeFinalizedEvent.InputTuple, CommitteeFinalizedEvent.OutputTuple, CommitteeFinalizedEvent.OutputObject>;
    getEvent(key: 'CommitteeFormed'): TypedContractEvent<CommitteeFormedEvent.InputTuple, CommitteeFormedEvent.OutputTuple, CommitteeFormedEvent.OutputObject>;
    getEvent(key: 'CommitteeThresholdsUpdated'): TypedContractEvent<CommitteeThresholdsUpdatedEvent.InputTuple, CommitteeThresholdsUpdatedEvent.OutputTuple, CommitteeThresholdsUpdatedEvent.OutputObject>;
    getEvent(key: 'E3Failed'): TypedContractEvent<E3FailedEvent.InputTuple, E3FailedEvent.OutputTuple, E3FailedEvent.OutputObject>;
    getEvent(key: 'E3FailureProcessed'): TypedContractEvent<E3FailureProcessedEvent.InputTuple, E3FailureProcessedEvent.OutputTuple, E3FailureProcessedEvent.OutputObject>;
    getEvent(key: 'E3ProgramDisabled'): TypedContractEvent<E3ProgramDisabledEvent.InputTuple, E3ProgramDisabledEvent.OutputTuple, E3ProgramDisabledEvent.OutputObject>;
    getEvent(key: 'E3ProgramEnabled'): TypedContractEvent<E3ProgramEnabledEvent.InputTuple, E3ProgramEnabledEvent.OutputTuple, E3ProgramEnabledEvent.OutputObject>;
    getEvent(key: 'E3RefundManagerSet'): TypedContractEvent<E3RefundManagerSetEvent.InputTuple, E3RefundManagerSetEvent.OutputTuple, E3RefundManagerSetEvent.OutputObject>;
    getEvent(key: 'E3Requested'): TypedContractEvent<E3RequestedEvent.InputTuple, E3RequestedEvent.OutputTuple, E3RequestedEvent.OutputObject>;
    getEvent(key: 'E3StageChanged'): TypedContractEvent<E3StageChangedEvent.InputTuple, E3StageChangedEvent.OutputTuple, E3StageChangedEvent.OutputObject>;
    getEvent(key: 'EncryptionSchemeDisabled'): TypedContractEvent<EncryptionSchemeDisabledEvent.InputTuple, EncryptionSchemeDisabledEvent.OutputTuple, EncryptionSchemeDisabledEvent.OutputObject>;
    getEvent(key: 'EncryptionSchemeEnabled'): TypedContractEvent<EncryptionSchemeEnabledEvent.InputTuple, EncryptionSchemeEnabledEvent.OutputTuple, EncryptionSchemeEnabledEvent.OutputObject>;
    getEvent(key: 'FeeTokenAllowed'): TypedContractEvent<FeeTokenAllowedEvent.InputTuple, FeeTokenAllowedEvent.OutputTuple, FeeTokenAllowedEvent.OutputObject>;
    getEvent(key: 'FeeTokenSet'): TypedContractEvent<FeeTokenSetEvent.InputTuple, FeeTokenSetEvent.OutputTuple, FeeTokenSetEvent.OutputObject>;
    getEvent(key: 'Initialized'): TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>;
    getEvent(key: 'InputPublished'): TypedContractEvent<InputPublishedEvent.InputTuple, InputPublishedEvent.OutputTuple, InputPublishedEvent.OutputObject>;
    getEvent(key: 'MarkFailedGracePeriodSet'): TypedContractEvent<MarkFailedGracePeriodSetEvent.InputTuple, MarkFailedGracePeriodSetEvent.OutputTuple, MarkFailedGracePeriodSetEvent.OutputObject>;
    getEvent(key: 'MaxDurationSet'): TypedContractEvent<MaxDurationSetEvent.InputTuple, MaxDurationSetEvent.OutputTuple, MaxDurationSetEvent.OutputObject>;
    getEvent(key: 'OwnershipTransferStarted'): TypedContractEvent<OwnershipTransferStartedEvent.InputTuple, OwnershipTransferStartedEvent.OutputTuple, OwnershipTransferStartedEvent.OutputObject>;
    getEvent(key: 'OwnershipTransferred'): TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
    getEvent(key: 'ParamSetRegistered'): TypedContractEvent<ParamSetRegisteredEvent.InputTuple, ParamSetRegisteredEvent.OutputTuple, ParamSetRegisteredEvent.OutputObject>;
    getEvent(key: 'ParamSetUpdated'): TypedContractEvent<ParamSetUpdatedEvent.InputTuple, ParamSetUpdatedEvent.OutputTuple, ParamSetUpdatedEvent.OutputObject>;
    getEvent(key: 'PkVerifierSet'): TypedContractEvent<PkVerifierSetEvent.InputTuple, PkVerifierSetEvent.OutputTuple, PkVerifierSetEvent.OutputObject>;
    getEvent(key: 'PlaintextOutputPublished'): TypedContractEvent<PlaintextOutputPublishedEvent.InputTuple, PlaintextOutputPublishedEvent.OutputTuple, PlaintextOutputPublishedEvent.OutputObject>;
    getEvent(key: 'PricingConfigUpdated'): TypedContractEvent<PricingConfigUpdatedEvent.InputTuple, PricingConfigUpdatedEvent.OutputTuple, PricingConfigUpdatedEvent.OutputObject>;
    getEvent(key: 'RewardClaimed'): TypedContractEvent<RewardClaimedEvent.InputTuple, RewardClaimedEvent.OutputTuple, RewardClaimedEvent.OutputObject>;
    getEvent(key: 'RewardCredited'): TypedContractEvent<RewardCreditedEvent.InputTuple, RewardCreditedEvent.OutputTuple, RewardCreditedEvent.OutputObject>;
    getEvent(key: 'RewardsDistributed'): TypedContractEvent<RewardsDistributedEvent.InputTuple, RewardsDistributedEvent.OutputTuple, RewardsDistributedEvent.OutputObject>;
    getEvent(key: 'SlashedFundsEscrowed'): TypedContractEvent<SlashedFundsEscrowedEvent.InputTuple, SlashedFundsEscrowedEvent.OutputTuple, SlashedFundsEscrowedEvent.OutputObject>;
    getEvent(key: 'SlashingManagerSet'): TypedContractEvent<SlashingManagerSetEvent.InputTuple, SlashingManagerSetEvent.OutputTuple, SlashingManagerSetEvent.OutputObject>;
    getEvent(key: 'TimeoutConfigUpdated'): TypedContractEvent<TimeoutConfigUpdatedEvent.InputTuple, TimeoutConfigUpdatedEvent.OutputTuple, TimeoutConfigUpdatedEvent.OutputObject>;
    getEvent(key: 'TreasuryClaimed'): TypedContractEvent<TreasuryClaimedEvent.InputTuple, TreasuryClaimedEvent.OutputTuple, TreasuryClaimedEvent.OutputObject>;
    getEvent(key: 'TreasuryCredited'): TypedContractEvent<TreasuryCreditedEvent.InputTuple, TreasuryCreditedEvent.OutputTuple, TreasuryCreditedEvent.OutputObject>;
    filters: {
        'BondingRegistrySet(address)': TypedContractEvent<BondingRegistrySetEvent.InputTuple, BondingRegistrySetEvent.OutputTuple, BondingRegistrySetEvent.OutputObject>;
        BondingRegistrySet: TypedContractEvent<BondingRegistrySetEvent.InputTuple, BondingRegistrySetEvent.OutputTuple, BondingRegistrySetEvent.OutputObject>;
        'CiphernodeRegistrySet(address)': TypedContractEvent<CiphernodeRegistrySetEvent.InputTuple, CiphernodeRegistrySetEvent.OutputTuple, CiphernodeRegistrySetEvent.OutputObject>;
        CiphernodeRegistrySet: TypedContractEvent<CiphernodeRegistrySetEvent.InputTuple, CiphernodeRegistrySetEvent.OutputTuple, CiphernodeRegistrySetEvent.OutputObject>;
        'CiphertextOutputPublished(uint256,bytes)': TypedContractEvent<CiphertextOutputPublishedEvent.InputTuple, CiphertextOutputPublishedEvent.OutputTuple, CiphertextOutputPublishedEvent.OutputObject>;
        CiphertextOutputPublished: TypedContractEvent<CiphertextOutputPublishedEvent.InputTuple, CiphertextOutputPublishedEvent.OutputTuple, CiphertextOutputPublishedEvent.OutputObject>;
        'CommitteeFinalized(uint256)': TypedContractEvent<CommitteeFinalizedEvent.InputTuple, CommitteeFinalizedEvent.OutputTuple, CommitteeFinalizedEvent.OutputObject>;
        CommitteeFinalized: TypedContractEvent<CommitteeFinalizedEvent.InputTuple, CommitteeFinalizedEvent.OutputTuple, CommitteeFinalizedEvent.OutputObject>;
        'CommitteeFormed(uint256)': TypedContractEvent<CommitteeFormedEvent.InputTuple, CommitteeFormedEvent.OutputTuple, CommitteeFormedEvent.OutputObject>;
        CommitteeFormed: TypedContractEvent<CommitteeFormedEvent.InputTuple, CommitteeFormedEvent.OutputTuple, CommitteeFormedEvent.OutputObject>;
        'CommitteeThresholdsUpdated(uint8,uint32[2])': TypedContractEvent<CommitteeThresholdsUpdatedEvent.InputTuple, CommitteeThresholdsUpdatedEvent.OutputTuple, CommitteeThresholdsUpdatedEvent.OutputObject>;
        CommitteeThresholdsUpdated: TypedContractEvent<CommitteeThresholdsUpdatedEvent.InputTuple, CommitteeThresholdsUpdatedEvent.OutputTuple, CommitteeThresholdsUpdatedEvent.OutputObject>;
        'E3Failed(uint256,uint8,uint8)': TypedContractEvent<E3FailedEvent.InputTuple, E3FailedEvent.OutputTuple, E3FailedEvent.OutputObject>;
        E3Failed: TypedContractEvent<E3FailedEvent.InputTuple, E3FailedEvent.OutputTuple, E3FailedEvent.OutputObject>;
        'E3FailureProcessed(uint256,uint256,uint256)': TypedContractEvent<E3FailureProcessedEvent.InputTuple, E3FailureProcessedEvent.OutputTuple, E3FailureProcessedEvent.OutputObject>;
        E3FailureProcessed: TypedContractEvent<E3FailureProcessedEvent.InputTuple, E3FailureProcessedEvent.OutputTuple, E3FailureProcessedEvent.OutputObject>;
        'E3ProgramDisabled(address)': TypedContractEvent<E3ProgramDisabledEvent.InputTuple, E3ProgramDisabledEvent.OutputTuple, E3ProgramDisabledEvent.OutputObject>;
        E3ProgramDisabled: TypedContractEvent<E3ProgramDisabledEvent.InputTuple, E3ProgramDisabledEvent.OutputTuple, E3ProgramDisabledEvent.OutputObject>;
        'E3ProgramEnabled(address)': TypedContractEvent<E3ProgramEnabledEvent.InputTuple, E3ProgramEnabledEvent.OutputTuple, E3ProgramEnabledEvent.OutputObject>;
        E3ProgramEnabled: TypedContractEvent<E3ProgramEnabledEvent.InputTuple, E3ProgramEnabledEvent.OutputTuple, E3ProgramEnabledEvent.OutputObject>;
        'E3RefundManagerSet(address)': TypedContractEvent<E3RefundManagerSetEvent.InputTuple, E3RefundManagerSetEvent.OutputTuple, E3RefundManagerSetEvent.OutputObject>;
        E3RefundManagerSet: TypedContractEvent<E3RefundManagerSetEvent.InputTuple, E3RefundManagerSetEvent.OutputTuple, E3RefundManagerSetEvent.OutputObject>;
        'E3Requested(uint256,tuple,address)': TypedContractEvent<E3RequestedEvent.InputTuple, E3RequestedEvent.OutputTuple, E3RequestedEvent.OutputObject>;
        E3Requested: TypedContractEvent<E3RequestedEvent.InputTuple, E3RequestedEvent.OutputTuple, E3RequestedEvent.OutputObject>;
        'E3StageChanged(uint256,uint8,uint8)': TypedContractEvent<E3StageChangedEvent.InputTuple, E3StageChangedEvent.OutputTuple, E3StageChangedEvent.OutputObject>;
        E3StageChanged: TypedContractEvent<E3StageChangedEvent.InputTuple, E3StageChangedEvent.OutputTuple, E3StageChangedEvent.OutputObject>;
        'EncryptionSchemeDisabled(bytes32)': TypedContractEvent<EncryptionSchemeDisabledEvent.InputTuple, EncryptionSchemeDisabledEvent.OutputTuple, EncryptionSchemeDisabledEvent.OutputObject>;
        EncryptionSchemeDisabled: TypedContractEvent<EncryptionSchemeDisabledEvent.InputTuple, EncryptionSchemeDisabledEvent.OutputTuple, EncryptionSchemeDisabledEvent.OutputObject>;
        'EncryptionSchemeEnabled(bytes32)': TypedContractEvent<EncryptionSchemeEnabledEvent.InputTuple, EncryptionSchemeEnabledEvent.OutputTuple, EncryptionSchemeEnabledEvent.OutputObject>;
        EncryptionSchemeEnabled: TypedContractEvent<EncryptionSchemeEnabledEvent.InputTuple, EncryptionSchemeEnabledEvent.OutputTuple, EncryptionSchemeEnabledEvent.OutputObject>;
        'FeeTokenAllowed(address,bool)': TypedContractEvent<FeeTokenAllowedEvent.InputTuple, FeeTokenAllowedEvent.OutputTuple, FeeTokenAllowedEvent.OutputObject>;
        FeeTokenAllowed: TypedContractEvent<FeeTokenAllowedEvent.InputTuple, FeeTokenAllowedEvent.OutputTuple, FeeTokenAllowedEvent.OutputObject>;
        'FeeTokenSet(address)': TypedContractEvent<FeeTokenSetEvent.InputTuple, FeeTokenSetEvent.OutputTuple, FeeTokenSetEvent.OutputObject>;
        FeeTokenSet: TypedContractEvent<FeeTokenSetEvent.InputTuple, FeeTokenSetEvent.OutputTuple, FeeTokenSetEvent.OutputObject>;
        'Initialized(uint64)': TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>;
        Initialized: TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>;
        'InputPublished(uint256,bytes,uint256,uint256)': TypedContractEvent<InputPublishedEvent.InputTuple, InputPublishedEvent.OutputTuple, InputPublishedEvent.OutputObject>;
        InputPublished: TypedContractEvent<InputPublishedEvent.InputTuple, InputPublishedEvent.OutputTuple, InputPublishedEvent.OutputObject>;
        'MarkFailedGracePeriodSet(uint256)': TypedContractEvent<MarkFailedGracePeriodSetEvent.InputTuple, MarkFailedGracePeriodSetEvent.OutputTuple, MarkFailedGracePeriodSetEvent.OutputObject>;
        MarkFailedGracePeriodSet: TypedContractEvent<MarkFailedGracePeriodSetEvent.InputTuple, MarkFailedGracePeriodSetEvent.OutputTuple, MarkFailedGracePeriodSetEvent.OutputObject>;
        'MaxDurationSet(uint256)': TypedContractEvent<MaxDurationSetEvent.InputTuple, MaxDurationSetEvent.OutputTuple, MaxDurationSetEvent.OutputObject>;
        MaxDurationSet: TypedContractEvent<MaxDurationSetEvent.InputTuple, MaxDurationSetEvent.OutputTuple, MaxDurationSetEvent.OutputObject>;
        'OwnershipTransferStarted(address,address)': TypedContractEvent<OwnershipTransferStartedEvent.InputTuple, OwnershipTransferStartedEvent.OutputTuple, OwnershipTransferStartedEvent.OutputObject>;
        OwnershipTransferStarted: TypedContractEvent<OwnershipTransferStartedEvent.InputTuple, OwnershipTransferStartedEvent.OutputTuple, OwnershipTransferStartedEvent.OutputObject>;
        'OwnershipTransferred(address,address)': TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
        OwnershipTransferred: TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
        'ParamSetRegistered(uint8,bytes)': TypedContractEvent<ParamSetRegisteredEvent.InputTuple, ParamSetRegisteredEvent.OutputTuple, ParamSetRegisteredEvent.OutputObject>;
        ParamSetRegistered: TypedContractEvent<ParamSetRegisteredEvent.InputTuple, ParamSetRegisteredEvent.OutputTuple, ParamSetRegisteredEvent.OutputObject>;
        'ParamSetUpdated(uint8,bytes,bytes)': TypedContractEvent<ParamSetUpdatedEvent.InputTuple, ParamSetUpdatedEvent.OutputTuple, ParamSetUpdatedEvent.OutputObject>;
        ParamSetUpdated: TypedContractEvent<ParamSetUpdatedEvent.InputTuple, ParamSetUpdatedEvent.OutputTuple, ParamSetUpdatedEvent.OutputObject>;
        'PkVerifierSet(bytes32,address)': TypedContractEvent<PkVerifierSetEvent.InputTuple, PkVerifierSetEvent.OutputTuple, PkVerifierSetEvent.OutputObject>;
        PkVerifierSet: TypedContractEvent<PkVerifierSetEvent.InputTuple, PkVerifierSetEvent.OutputTuple, PkVerifierSetEvent.OutputObject>;
        'PlaintextOutputPublished(uint256,bytes,bytes)': TypedContractEvent<PlaintextOutputPublishedEvent.InputTuple, PlaintextOutputPublishedEvent.OutputTuple, PlaintextOutputPublishedEvent.OutputObject>;
        PlaintextOutputPublished: TypedContractEvent<PlaintextOutputPublishedEvent.InputTuple, PlaintextOutputPublishedEvent.OutputTuple, PlaintextOutputPublishedEvent.OutputObject>;
        'PricingConfigUpdated(tuple)': TypedContractEvent<PricingConfigUpdatedEvent.InputTuple, PricingConfigUpdatedEvent.OutputTuple, PricingConfigUpdatedEvent.OutputObject>;
        PricingConfigUpdated: TypedContractEvent<PricingConfigUpdatedEvent.InputTuple, PricingConfigUpdatedEvent.OutputTuple, PricingConfigUpdatedEvent.OutputObject>;
        'RewardClaimed(uint256,address,address,uint256)': TypedContractEvent<RewardClaimedEvent.InputTuple, RewardClaimedEvent.OutputTuple, RewardClaimedEvent.OutputObject>;
        RewardClaimed: TypedContractEvent<RewardClaimedEvent.InputTuple, RewardClaimedEvent.OutputTuple, RewardClaimedEvent.OutputObject>;
        'RewardCredited(uint256,address,address,uint256)': TypedContractEvent<RewardCreditedEvent.InputTuple, RewardCreditedEvent.OutputTuple, RewardCreditedEvent.OutputObject>;
        RewardCredited: TypedContractEvent<RewardCreditedEvent.InputTuple, RewardCreditedEvent.OutputTuple, RewardCreditedEvent.OutputObject>;
        'RewardsDistributed(uint256,address[],uint256[])': TypedContractEvent<RewardsDistributedEvent.InputTuple, RewardsDistributedEvent.OutputTuple, RewardsDistributedEvent.OutputObject>;
        RewardsDistributed: TypedContractEvent<RewardsDistributedEvent.InputTuple, RewardsDistributedEvent.OutputTuple, RewardsDistributedEvent.OutputObject>;
        'SlashedFundsEscrowed(uint256,uint256)': TypedContractEvent<SlashedFundsEscrowedEvent.InputTuple, SlashedFundsEscrowedEvent.OutputTuple, SlashedFundsEscrowedEvent.OutputObject>;
        SlashedFundsEscrowed: TypedContractEvent<SlashedFundsEscrowedEvent.InputTuple, SlashedFundsEscrowedEvent.OutputTuple, SlashedFundsEscrowedEvent.OutputObject>;
        'SlashingManagerSet(address)': TypedContractEvent<SlashingManagerSetEvent.InputTuple, SlashingManagerSetEvent.OutputTuple, SlashingManagerSetEvent.OutputObject>;
        SlashingManagerSet: TypedContractEvent<SlashingManagerSetEvent.InputTuple, SlashingManagerSetEvent.OutputTuple, SlashingManagerSetEvent.OutputObject>;
        'TimeoutConfigUpdated(tuple)': TypedContractEvent<TimeoutConfigUpdatedEvent.InputTuple, TimeoutConfigUpdatedEvent.OutputTuple, TimeoutConfigUpdatedEvent.OutputObject>;
        TimeoutConfigUpdated: TypedContractEvent<TimeoutConfigUpdatedEvent.InputTuple, TimeoutConfigUpdatedEvent.OutputTuple, TimeoutConfigUpdatedEvent.OutputObject>;
        'TreasuryClaimed(address,address,uint256)': TypedContractEvent<TreasuryClaimedEvent.InputTuple, TreasuryClaimedEvent.OutputTuple, TreasuryClaimedEvent.OutputObject>;
        TreasuryClaimed: TypedContractEvent<TreasuryClaimedEvent.InputTuple, TreasuryClaimedEvent.OutputTuple, TreasuryClaimedEvent.OutputObject>;
        'TreasuryCredited(uint256,address,address,uint256)': TypedContractEvent<TreasuryCreditedEvent.InputTuple, TreasuryCreditedEvent.OutputTuple, TreasuryCreditedEvent.OutputObject>;
        TreasuryCredited: TypedContractEvent<TreasuryCreditedEvent.InputTuple, TreasuryCreditedEvent.OutputTuple, TreasuryCreditedEvent.OutputObject>;
    };
}
//# sourceMappingURL=Interfold.d.ts.map