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 declare namespace ISlashingManager {
    type SlashPolicyStruct = {
        ticketPenalty: BigNumberish;
        licensePenalty: BigNumberish;
        requiresProof: boolean;
        proofVerifier: AddressLike;
        banNode: boolean;
        appealWindow: BigNumberish;
        enabled: boolean;
        affectsCommittee: boolean;
        failureReason: BigNumberish;
    };
    type SlashPolicyStructOutput = [ticketPenalty: bigint, licensePenalty: bigint, requiresProof: boolean, proofVerifier: string, banNode: boolean, appealWindow: bigint, enabled: boolean, affectsCommittee: boolean, failureReason: bigint] & {
        ticketPenalty: bigint;
        licensePenalty: bigint;
        requiresProof: boolean;
        proofVerifier: string;
        banNode: boolean;
        appealWindow: bigint;
        enabled: boolean;
        affectsCommittee: boolean;
        failureReason: bigint;
    };
    type SlashProposalStruct = {
        e3Id: BigNumberish;
        operator: AddressLike;
        reason: BytesLike;
        ticketAmount: BigNumberish;
        licenseAmount: BigNumberish;
        executed: boolean;
        appealed: boolean;
        resolved: boolean;
        appealUpheld: boolean;
        proposedAt: BigNumberish;
        executableAt: BigNumberish;
        proposer: AddressLike;
        proofHash: BytesLike;
        proofVerified: boolean;
        banNode: boolean;
        affectsCommittee: boolean;
        failureReason: BigNumberish;
    };
    type SlashProposalStructOutput = [e3Id: bigint, operator: string, reason: string, ticketAmount: bigint, licenseAmount: bigint, executed: boolean, appealed: boolean, resolved: boolean, appealUpheld: boolean, proposedAt: bigint, executableAt: bigint, proposer: string, proofHash: string, proofVerified: boolean, banNode: boolean, affectsCommittee: boolean, failureReason: bigint] & {
        e3Id: bigint;
        operator: string;
        reason: string;
        ticketAmount: bigint;
        licenseAmount: bigint;
        executed: boolean;
        appealed: boolean;
        resolved: boolean;
        appealUpheld: boolean;
        proposedAt: bigint;
        executableAt: bigint;
        proposer: string;
        proofHash: string;
        proofVerified: boolean;
        banNode: boolean;
        affectsCommittee: boolean;
        failureReason: bigint;
    };
}
export interface SlashingManagerInterface extends Interface {
    getFunction(nameOrSignature: "DEFAULT_ADMIN_ROLE" | "DOMAIN_NAME_HASH" | "DOMAIN_VERSION_HASH" | "EIP712_DOMAIN_NAME" | "EIP712_DOMAIN_TYPEHASH" | "EIP712_DOMAIN_VERSION" | "GOVERNANCE_ROLE" | "MAX_APPEAL_WINDOW" | "PROOF_PAYLOAD_TYPEHASH" | "SLASHER_ROLE" | "VOTE_TYPEHASH" | "acceptDefaultAdminTransfer" | "addSlasher" | "attestationDomainSeparator" | "banned" | "beginDefaultAdminTransfer" | "bondingRegistry" | "cancelBan" | "cancelDefaultAdminTransfer" | "changeDefaultAdminDelay" | "ciphernodeRegistry" | "confirmBan" | "defaultAdmin" | "defaultAdminDelay" | "defaultAdminDelayIncreaseWait" | "e3RefundManager" | "eip712Domain" | "escrowSlashedFundsToRefund" | "evidenceConsumed" | "executeSlash" | "fileAppeal" | "getRoleAdmin" | "getSlashPolicy" | "getSlashProposal" | "grantRole" | "hasOpenLaneBProposal" | "hasRole" | "interfold" | "isBanned" | "owner" | "pendingDefaultAdmin" | "pendingDefaultAdminDelay" | "proposeBan" | "proposeSlash" | "proposeSlashByDkgParty" | "proposeSlashEvidence" | "removeSlasher" | "renounceRole" | "resolveAppeal" | "revokeRole" | "rollbackDefaultAdminDelay" | "setBondingRegistry" | "setCiphernodeRegistry" | "setE3RefundManager" | "setInterfold" | "setSlashPolicy" | "slashPolicies" | "supportsInterface" | "totalProposals" | "unbanNode" | "updateBanStatus"): FunctionFragment;
    getEvent(nameOrSignatureOrTopic: "AppealFiled" | "AppealResolved" | "BanCancelled" | "BanProposed" | "BondingRegistrySet" | "BondingRegistryUpdated" | "CiphernodeRegistrySet" | "CiphernodeRegistryUpdated" | "DefaultAdminDelayChangeCanceled" | "DefaultAdminDelayChangeScheduled" | "DefaultAdminTransferCanceled" | "DefaultAdminTransferScheduled" | "E3RefundManagerSet" | "E3RefundManagerUpdated" | "EIP712DomainChanged" | "InterfoldSet" | "InterfoldUpdated" | "NodeBanUpdated" | "RoleAdminChanged" | "RoleGranted" | "RoleRevoked" | "RoutingFailed" | "SlashExecuted" | "SlashPolicyUpdated" | "SlashProposed" | "SlashedFundsEscrowedToRefund"): EventFragment;
    encodeFunctionData(functionFragment: 'DEFAULT_ADMIN_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'DOMAIN_NAME_HASH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'DOMAIN_VERSION_HASH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'EIP712_DOMAIN_NAME', values?: undefined): string;
    encodeFunctionData(functionFragment: 'EIP712_DOMAIN_TYPEHASH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'EIP712_DOMAIN_VERSION', values?: undefined): string;
    encodeFunctionData(functionFragment: 'GOVERNANCE_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MAX_APPEAL_WINDOW', values?: undefined): string;
    encodeFunctionData(functionFragment: 'PROOF_PAYLOAD_TYPEHASH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'SLASHER_ROLE', values?: undefined): string;
    encodeFunctionData(functionFragment: 'VOTE_TYPEHASH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'acceptDefaultAdminTransfer', values?: undefined): string;
    encodeFunctionData(functionFragment: 'addSlasher', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'attestationDomainSeparator', values?: undefined): string;
    encodeFunctionData(functionFragment: 'banned', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'beginDefaultAdminTransfer', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'bondingRegistry', values?: undefined): string;
    encodeFunctionData(functionFragment: 'cancelBan', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'cancelDefaultAdminTransfer', values?: undefined): string;
    encodeFunctionData(functionFragment: 'changeDefaultAdminDelay', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'ciphernodeRegistry', values?: undefined): string;
    encodeFunctionData(functionFragment: 'confirmBan', values: [AddressLike, BytesLike]): string;
    encodeFunctionData(functionFragment: 'defaultAdmin', values?: undefined): string;
    encodeFunctionData(functionFragment: 'defaultAdminDelay', values?: undefined): string;
    encodeFunctionData(functionFragment: 'defaultAdminDelayIncreaseWait', values?: undefined): string;
    encodeFunctionData(functionFragment: 'e3RefundManager', values?: undefined): string;
    encodeFunctionData(functionFragment: 'eip712Domain', values?: undefined): string;
    encodeFunctionData(functionFragment: 'escrowSlashedFundsToRefund', values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: 'evidenceConsumed', values: [BytesLike]): string;
    encodeFunctionData(functionFragment: 'executeSlash', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'fileAppeal', values: [BigNumberish, string]): string;
    encodeFunctionData(functionFragment: 'getRoleAdmin', values: [BytesLike]): string;
    encodeFunctionData(functionFragment: 'getSlashPolicy', values: [BytesLike]): string;
    encodeFunctionData(functionFragment: 'getSlashProposal', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'grantRole', values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: 'hasOpenLaneBProposal', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'hasRole', values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: 'interfold', values?: undefined): string;
    encodeFunctionData(functionFragment: 'isBanned', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pendingDefaultAdmin', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pendingDefaultAdminDelay', values?: undefined): string;
    encodeFunctionData(functionFragment: 'proposeBan', values: [AddressLike, BytesLike]): string;
    encodeFunctionData(functionFragment: 'proposeSlash', values: [BigNumberish, AddressLike, BytesLike]): string;
    encodeFunctionData(functionFragment: 'proposeSlashByDkgParty', values: [BigNumberish, BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: 'proposeSlashEvidence', values: [BigNumberish, AddressLike, BytesLike, BytesLike]): string;
    encodeFunctionData(functionFragment: 'removeSlasher', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'renounceRole', values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: 'resolveAppeal', values: [BigNumberish, boolean, string]): string;
    encodeFunctionData(functionFragment: 'revokeRole', values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: 'rollbackDefaultAdminDelay', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setBondingRegistry', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setCiphernodeRegistry', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setE3RefundManager', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setInterfold', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setSlashPolicy', values: [BytesLike, ISlashingManager.SlashPolicyStruct]): string;
    encodeFunctionData(functionFragment: 'slashPolicies', values: [BytesLike]): string;
    encodeFunctionData(functionFragment: 'supportsInterface', values: [BytesLike]): string;
    encodeFunctionData(functionFragment: 'totalProposals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'unbanNode', values: [AddressLike, BytesLike]): string;
    encodeFunctionData(functionFragment: 'updateBanStatus', values: [AddressLike, boolean, BytesLike]): string;
    decodeFunctionResult(functionFragment: 'DEFAULT_ADMIN_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'DOMAIN_NAME_HASH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'DOMAIN_VERSION_HASH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'EIP712_DOMAIN_NAME', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'EIP712_DOMAIN_TYPEHASH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'EIP712_DOMAIN_VERSION', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'GOVERNANCE_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MAX_APPEAL_WINDOW', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'PROOF_PAYLOAD_TYPEHASH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'SLASHER_ROLE', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'VOTE_TYPEHASH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'acceptDefaultAdminTransfer', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addSlasher', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'attestationDomainSeparator', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'banned', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'beginDefaultAdminTransfer', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'bondingRegistry', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'cancelBan', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'cancelDefaultAdminTransfer', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'changeDefaultAdminDelay', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ciphernodeRegistry', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'confirmBan', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'defaultAdmin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'defaultAdminDelay', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'defaultAdminDelayIncreaseWait', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'e3RefundManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'eip712Domain', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'escrowSlashedFundsToRefund', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'evidenceConsumed', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'executeSlash', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fileAppeal', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRoleAdmin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getSlashPolicy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getSlashProposal', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'grantRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasOpenLaneBProposal', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'interfold', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isBanned', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendingDefaultAdmin', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendingDefaultAdminDelay', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'proposeBan', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'proposeSlash', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'proposeSlashByDkgParty', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'proposeSlashEvidence', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeSlasher', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'resolveAppeal', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revokeRole', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'rollbackDefaultAdminDelay', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setBondingRegistry', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setCiphernodeRegistry', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setE3RefundManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setInterfold', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setSlashPolicy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'slashPolicies', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'supportsInterface', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalProposals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unbanNode', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateBanStatus', data: BytesLike): Result;
}
export declare namespace AppealFiledEvent {
    type InputTuple = [proposalId: BigNumberish, operator: AddressLike, reason: BytesLike, evidence: string];
    type OutputTuple = [proposalId: bigint, operator: string, reason: string, evidence: string];
    interface OutputObject {
        proposalId: bigint;
        operator: string;
        reason: string;
        evidence: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace AppealResolvedEvent {
    type InputTuple = [proposalId: BigNumberish, operator: AddressLike, appealUpheld: boolean, resolver: AddressLike, resolution: string];
    type OutputTuple = [proposalId: bigint, operator: string, appealUpheld: boolean, resolver: string, resolution: string];
    interface OutputObject {
        proposalId: bigint;
        operator: string;
        appealUpheld: boolean;
        resolver: string;
        resolution: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace BanCancelledEvent {
    type InputTuple = [node: AddressLike, canceller: AddressLike];
    type OutputTuple = [node: string, canceller: string];
    interface OutputObject {
        node: string;
        canceller: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace BanProposedEvent {
    type InputTuple = [node: AddressLike, reason: BytesLike, proposer: AddressLike];
    type OutputTuple = [node: string, reason: string, proposer: string];
    interface OutputObject {
        node: string;
        reason: string;
        proposer: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
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 BondingRegistryUpdatedEvent {
    type InputTuple = [previous: AddressLike, next: AddressLike];
    type OutputTuple = [previous: string, next: string];
    interface OutputObject {
        previous: string;
        next: 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 CiphernodeRegistryUpdatedEvent {
    type InputTuple = [previous: AddressLike, next: AddressLike];
    type OutputTuple = [previous: string, next: string];
    interface OutputObject {
        previous: string;
        next: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace DefaultAdminDelayChangeCanceledEvent {
    type InputTuple = [];
    type OutputTuple = [];
    interface OutputObject {
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace DefaultAdminDelayChangeScheduledEvent {
    type InputTuple = [newDelay: BigNumberish, effectSchedule: BigNumberish];
    type OutputTuple = [newDelay: bigint, effectSchedule: bigint];
    interface OutputObject {
        newDelay: bigint;
        effectSchedule: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace DefaultAdminTransferCanceledEvent {
    type InputTuple = [];
    type OutputTuple = [];
    interface OutputObject {
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace DefaultAdminTransferScheduledEvent {
    type InputTuple = [newAdmin: AddressLike, acceptSchedule: BigNumberish];
    type OutputTuple = [newAdmin: string, acceptSchedule: bigint];
    interface OutputObject {
        newAdmin: string;
        acceptSchedule: bigint;
    }
    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 E3RefundManagerUpdatedEvent {
    type InputTuple = [previous: AddressLike, next: AddressLike];
    type OutputTuple = [previous: string, next: string];
    interface OutputObject {
        previous: string;
        next: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace EIP712DomainChangedEvent {
    type InputTuple = [];
    type OutputTuple = [];
    interface OutputObject {
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace InterfoldSetEvent {
    type InputTuple = [interfold: AddressLike];
    type OutputTuple = [interfold: string];
    interface OutputObject {
        interfold: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace InterfoldUpdatedEvent {
    type InputTuple = [previous: AddressLike, next: AddressLike];
    type OutputTuple = [previous: string, next: string];
    interface OutputObject {
        previous: string;
        next: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NodeBanUpdatedEvent {
    type InputTuple = [node: AddressLike, status: boolean, reason: BytesLike, updater: AddressLike];
    type OutputTuple = [node: string, status: boolean, reason: string, updater: string];
    interface OutputObject {
        node: string;
        status: boolean;
        reason: string;
        updater: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoleAdminChangedEvent {
    type InputTuple = [role: BytesLike, previousAdminRole: BytesLike, newAdminRole: BytesLike];
    type OutputTuple = [role: string, previousAdminRole: string, newAdminRole: string];
    interface OutputObject {
        role: string;
        previousAdminRole: string;
        newAdminRole: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoleGrantedEvent {
    type InputTuple = [role: BytesLike, account: AddressLike, sender: AddressLike];
    type OutputTuple = [role: string, account: string, sender: string];
    interface OutputObject {
        role: string;
        account: string;
        sender: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoleRevokedEvent {
    type InputTuple = [role: BytesLike, account: AddressLike, sender: AddressLike];
    type OutputTuple = [role: string, account: string, sender: string];
    interface OutputObject {
        role: string;
        account: string;
        sender: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoutingFailedEvent {
    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 SlashExecutedEvent {
    type InputTuple = [proposalId: BigNumberish, e3Id: BigNumberish, operator: AddressLike, reason: BytesLike, ticketAmount: BigNumberish, licenseAmount: BigNumberish, executed: boolean, lane: BigNumberish];
    type OutputTuple = [proposalId: bigint, e3Id: bigint, operator: string, reason: string, ticketAmount: bigint, licenseAmount: bigint, executed: boolean, lane: bigint];
    interface OutputObject {
        proposalId: bigint;
        e3Id: bigint;
        operator: string;
        reason: string;
        ticketAmount: bigint;
        licenseAmount: bigint;
        executed: boolean;
        lane: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SlashPolicyUpdatedEvent {
    type InputTuple = [reason: BytesLike, policy: ISlashingManager.SlashPolicyStruct];
    type OutputTuple = [reason: string, policy: ISlashingManager.SlashPolicyStructOutput];
    interface OutputObject {
        reason: string;
        policy: ISlashingManager.SlashPolicyStructOutput;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SlashProposedEvent {
    type InputTuple = [proposalId: BigNumberish, e3Id: BigNumberish, operator: AddressLike, reason: BytesLike, ticketAmount: BigNumberish, licenseAmount: BigNumberish, executableAt: BigNumberish, proposer: AddressLike, lane: BigNumberish];
    type OutputTuple = [proposalId: bigint, e3Id: bigint, operator: string, reason: string, ticketAmount: bigint, licenseAmount: bigint, executableAt: bigint, proposer: string, lane: bigint];
    interface OutputObject {
        proposalId: bigint;
        e3Id: bigint;
        operator: string;
        reason: string;
        ticketAmount: bigint;
        licenseAmount: bigint;
        executableAt: bigint;
        proposer: string;
        lane: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SlashedFundsEscrowedToRefundEvent {
    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 interface SlashingManager extends BaseContract {
    connect(runner?: ContractRunner | null): SlashingManager;
    waitForDeployment(): Promise<this>;
    interface: SlashingManagerInterface;
    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>;
    DEFAULT_ADMIN_ROLE: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    DOMAIN_NAME_HASH: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    DOMAIN_VERSION_HASH: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    EIP712_DOMAIN_NAME: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    EIP712_DOMAIN_TYPEHASH: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    EIP712_DOMAIN_VERSION: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    GOVERNANCE_ROLE: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    MAX_APPEAL_WINDOW: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    PROOF_PAYLOAD_TYPEHASH: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    SLASHER_ROLE: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    VOTE_TYPEHASH: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    acceptDefaultAdminTransfer: TypedContractMethod<[
    ], [
        void
    ], 'nonpayable'>;
    addSlasher: TypedContractMethod<[
        slasher: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    attestationDomainSeparator: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    banned: TypedContractMethod<[
        node: AddressLike
    ], [
        boolean
    ], 'view'>;
    beginDefaultAdminTransfer: TypedContractMethod<[
        newAdmin: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    bondingRegistry: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    cancelBan: TypedContractMethod<[
        node: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    cancelDefaultAdminTransfer: TypedContractMethod<[
    ], [
        void
    ], 'nonpayable'>;
    changeDefaultAdminDelay: TypedContractMethod<[
        newDelay: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    ciphernodeRegistry: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    confirmBan: TypedContractMethod<[
        node: AddressLike,
        reason: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    defaultAdmin: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    defaultAdminDelay: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    defaultAdminDelayIncreaseWait: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    e3RefundManager: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    eip712Domain: TypedContractMethod<[
    ], [
        [string, string, string, bigint, string, string, bigint[]] & {
            fields: string;
            name: string;
            version: string;
            chainId: bigint;
            verifyingContract: string;
            salt: string;
            extensions: bigint[];
        }
    ], 'view'>;
    escrowSlashedFundsToRefund: TypedContractMethod<[
        e3Id: BigNumberish,
        amount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    evidenceConsumed: TypedContractMethod<[
        evidenceKey: BytesLike
    ], [
        boolean
    ], 'view'>;
    executeSlash: TypedContractMethod<[
        proposalId: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    fileAppeal: TypedContractMethod<[
        proposalId: BigNumberish,
        evidence: string
    ], [
        void
    ], 'nonpayable'>;
    getRoleAdmin: TypedContractMethod<[
        role: BytesLike
    ], [
        string
    ], 'view'>;
    getSlashPolicy: TypedContractMethod<[
        reason: BytesLike
    ], [
        ISlashingManager.SlashPolicyStructOutput
    ], 'view'>;
    getSlashProposal: TypedContractMethod<[
        proposalId: BigNumberish
    ], [
        ISlashingManager.SlashProposalStructOutput
    ], 'view'>;
    grantRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    hasOpenLaneBProposal: TypedContractMethod<[
        operator: AddressLike
    ], [
        boolean
    ], 'view'>;
    hasRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        boolean
    ], 'view'>;
    interfold: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    isBanned: TypedContractMethod<[
        node: AddressLike
    ], [
        boolean
    ], 'view'>;
    owner: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    pendingDefaultAdmin: TypedContractMethod<[
    ], [
        [string, bigint] & {
            newAdmin: string;
            schedule: bigint;
        }
    ], 'view'>;
    pendingDefaultAdminDelay: TypedContractMethod<[
    ], [
        [bigint, bigint] & {
            newDelay: bigint;
            schedule: bigint;
        }
    ], 'view'>;
    proposeBan: TypedContractMethod<[
        node: AddressLike,
        reason: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    proposeSlash: TypedContractMethod<[
        e3Id: BigNumberish,
        operator: AddressLike,
        proof: BytesLike
    ], [
        bigint
    ], 'nonpayable'>;
    proposeSlashByDkgParty: TypedContractMethod<[
        e3Id: BigNumberish,
        partyId: BigNumberish,
        proof: BytesLike
    ], [
        bigint
    ], 'nonpayable'>;
    proposeSlashEvidence: TypedContractMethod<[
        e3Id: BigNumberish,
        operator: AddressLike,
        reason: BytesLike,
        evidence: BytesLike
    ], [
        bigint
    ], 'nonpayable'>;
    removeSlasher: TypedContractMethod<[
        slasher: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    renounceRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    resolveAppeal: TypedContractMethod<[
        proposalId: BigNumberish,
        appealUpheld: boolean,
        resolution: string
    ], [
        void
    ], 'nonpayable'>;
    revokeRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    rollbackDefaultAdminDelay: TypedContractMethod<[
    ], [
        void
    ], 'nonpayable'>;
    setBondingRegistry: TypedContractMethod<[
        newBondingRegistry: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setCiphernodeRegistry: TypedContractMethod<[
        newCiphernodeRegistry: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setE3RefundManager: TypedContractMethod<[
        newRefundManager: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setInterfold: TypedContractMethod<[
        newInterfold: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setSlashPolicy: TypedContractMethod<[
        reason: BytesLike,
        policy: ISlashingManager.SlashPolicyStruct
    ], [
        void
    ], 'nonpayable'>;
    slashPolicies: TypedContractMethod<[
        reason: BytesLike
    ], [
        [bigint, bigint, boolean, string, boolean, bigint, boolean, boolean, bigint] & {
            ticketPenalty: bigint;
            licensePenalty: bigint;
            requiresProof: boolean;
            proofVerifier: string;
            banNode: boolean;
            appealWindow: bigint;
            enabled: boolean;
            affectsCommittee: boolean;
            failureReason: bigint;
        }
    ], 'view'>;
    supportsInterface: TypedContractMethod<[
        interfaceId: BytesLike
    ], [
        boolean
    ], 'view'>;
    totalProposals: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    unbanNode: TypedContractMethod<[
        node: AddressLike,
        reason: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    updateBanStatus: TypedContractMethod<[
        node: AddressLike,
        status: boolean,
        reason: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
    getFunction(nameOrSignature: 'DEFAULT_ADMIN_ROLE'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'DOMAIN_NAME_HASH'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'DOMAIN_VERSION_HASH'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'EIP712_DOMAIN_NAME'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'EIP712_DOMAIN_TYPEHASH'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'EIP712_DOMAIN_VERSION'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'GOVERNANCE_ROLE'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'MAX_APPEAL_WINDOW'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'PROOF_PAYLOAD_TYPEHASH'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'SLASHER_ROLE'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'VOTE_TYPEHASH'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'acceptDefaultAdminTransfer'): TypedContractMethod<[
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'addSlasher'): TypedContractMethod<[
        slasher: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'attestationDomainSeparator'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'banned'): TypedContractMethod<[
        node: AddressLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'beginDefaultAdminTransfer'): TypedContractMethod<[
        newAdmin: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'bondingRegistry'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'cancelBan'): TypedContractMethod<[
        node: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'cancelDefaultAdminTransfer'): TypedContractMethod<[
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'changeDefaultAdminDelay'): TypedContractMethod<[
        newDelay: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'ciphernodeRegistry'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'confirmBan'): TypedContractMethod<[
        node: AddressLike,
        reason: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'defaultAdmin'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'defaultAdminDelay'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'defaultAdminDelayIncreaseWait'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'e3RefundManager'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'eip712Domain'): TypedContractMethod<[
    ], [
        [string, string, string, bigint, string, string, bigint[]] & {
            fields: string;
            name: string;
            version: string;
            chainId: bigint;
            verifyingContract: string;
            salt: string;
            extensions: bigint[];
        }
    ], 'view'>;
    getFunction(nameOrSignature: 'escrowSlashedFundsToRefund'): TypedContractMethod<[
        e3Id: BigNumberish,
        amount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'evidenceConsumed'): TypedContractMethod<[
        evidenceKey: BytesLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'executeSlash'): TypedContractMethod<[
        proposalId: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'fileAppeal'): TypedContractMethod<[
        proposalId: BigNumberish,
        evidence: string
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'getRoleAdmin'): TypedContractMethod<[
        role: BytesLike
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'getSlashPolicy'): TypedContractMethod<[
        reason: BytesLike
    ], [
        ISlashingManager.SlashPolicyStructOutput
    ], 'view'>;
    getFunction(nameOrSignature: 'getSlashProposal'): TypedContractMethod<[
        proposalId: BigNumberish
    ], [
        ISlashingManager.SlashProposalStructOutput
    ], 'view'>;
    getFunction(nameOrSignature: 'grantRole'): TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'hasOpenLaneBProposal'): TypedContractMethod<[
        operator: AddressLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'hasRole'): TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'interfold'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'isBanned'): TypedContractMethod<[
        node: AddressLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'owner'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'pendingDefaultAdmin'): TypedContractMethod<[
    ], [
        [string, bigint] & {
            newAdmin: string;
            schedule: bigint;
        }
    ], 'view'>;
    getFunction(nameOrSignature: 'pendingDefaultAdminDelay'): TypedContractMethod<[
    ], [
        [bigint, bigint] & {
            newDelay: bigint;
            schedule: bigint;
        }
    ], 'view'>;
    getFunction(nameOrSignature: 'proposeBan'): TypedContractMethod<[
        node: AddressLike,
        reason: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'proposeSlash'): TypedContractMethod<[
        e3Id: BigNumberish,
        operator: AddressLike,
        proof: BytesLike
    ], [
        bigint
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'proposeSlashByDkgParty'): TypedContractMethod<[
        e3Id: BigNumberish,
        partyId: BigNumberish,
        proof: BytesLike
    ], [
        bigint
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'proposeSlashEvidence'): TypedContractMethod<[
        e3Id: BigNumberish,
        operator: AddressLike,
        reason: BytesLike,
        evidence: BytesLike
    ], [
        bigint
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'removeSlasher'): TypedContractMethod<[
        slasher: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'renounceRole'): TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'resolveAppeal'): TypedContractMethod<[
        proposalId: BigNumberish,
        appealUpheld: boolean,
        resolution: string
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'revokeRole'): TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'rollbackDefaultAdminDelay'): TypedContractMethod<[
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setBondingRegistry'): TypedContractMethod<[
        newBondingRegistry: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setCiphernodeRegistry'): TypedContractMethod<[
        newCiphernodeRegistry: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setE3RefundManager'): TypedContractMethod<[
        newRefundManager: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setInterfold'): TypedContractMethod<[
        newInterfold: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setSlashPolicy'): TypedContractMethod<[
        reason: BytesLike,
        policy: ISlashingManager.SlashPolicyStruct
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'slashPolicies'): TypedContractMethod<[
        reason: BytesLike
    ], [
        [bigint, bigint, boolean, string, boolean, bigint, boolean, boolean, bigint] & {
            ticketPenalty: bigint;
            licensePenalty: bigint;
            requiresProof: boolean;
            proofVerifier: string;
            banNode: boolean;
            appealWindow: bigint;
            enabled: boolean;
            affectsCommittee: boolean;
            failureReason: bigint;
        }
    ], 'view'>;
    getFunction(nameOrSignature: 'supportsInterface'): TypedContractMethod<[
        interfaceId: BytesLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'totalProposals'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'unbanNode'): TypedContractMethod<[
        node: AddressLike,
        reason: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'updateBanStatus'): TypedContractMethod<[
        node: AddressLike,
        status: boolean,
        reason: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    getEvent(key: 'AppealFiled'): TypedContractEvent<AppealFiledEvent.InputTuple, AppealFiledEvent.OutputTuple, AppealFiledEvent.OutputObject>;
    getEvent(key: 'AppealResolved'): TypedContractEvent<AppealResolvedEvent.InputTuple, AppealResolvedEvent.OutputTuple, AppealResolvedEvent.OutputObject>;
    getEvent(key: 'BanCancelled'): TypedContractEvent<BanCancelledEvent.InputTuple, BanCancelledEvent.OutputTuple, BanCancelledEvent.OutputObject>;
    getEvent(key: 'BanProposed'): TypedContractEvent<BanProposedEvent.InputTuple, BanProposedEvent.OutputTuple, BanProposedEvent.OutputObject>;
    getEvent(key: 'BondingRegistrySet'): TypedContractEvent<BondingRegistrySetEvent.InputTuple, BondingRegistrySetEvent.OutputTuple, BondingRegistrySetEvent.OutputObject>;
    getEvent(key: 'BondingRegistryUpdated'): TypedContractEvent<BondingRegistryUpdatedEvent.InputTuple, BondingRegistryUpdatedEvent.OutputTuple, BondingRegistryUpdatedEvent.OutputObject>;
    getEvent(key: 'CiphernodeRegistrySet'): TypedContractEvent<CiphernodeRegistrySetEvent.InputTuple, CiphernodeRegistrySetEvent.OutputTuple, CiphernodeRegistrySetEvent.OutputObject>;
    getEvent(key: 'CiphernodeRegistryUpdated'): TypedContractEvent<CiphernodeRegistryUpdatedEvent.InputTuple, CiphernodeRegistryUpdatedEvent.OutputTuple, CiphernodeRegistryUpdatedEvent.OutputObject>;
    getEvent(key: 'DefaultAdminDelayChangeCanceled'): TypedContractEvent<DefaultAdminDelayChangeCanceledEvent.InputTuple, DefaultAdminDelayChangeCanceledEvent.OutputTuple, DefaultAdminDelayChangeCanceledEvent.OutputObject>;
    getEvent(key: 'DefaultAdminDelayChangeScheduled'): TypedContractEvent<DefaultAdminDelayChangeScheduledEvent.InputTuple, DefaultAdminDelayChangeScheduledEvent.OutputTuple, DefaultAdminDelayChangeScheduledEvent.OutputObject>;
    getEvent(key: 'DefaultAdminTransferCanceled'): TypedContractEvent<DefaultAdminTransferCanceledEvent.InputTuple, DefaultAdminTransferCanceledEvent.OutputTuple, DefaultAdminTransferCanceledEvent.OutputObject>;
    getEvent(key: 'DefaultAdminTransferScheduled'): TypedContractEvent<DefaultAdminTransferScheduledEvent.InputTuple, DefaultAdminTransferScheduledEvent.OutputTuple, DefaultAdminTransferScheduledEvent.OutputObject>;
    getEvent(key: 'E3RefundManagerSet'): TypedContractEvent<E3RefundManagerSetEvent.InputTuple, E3RefundManagerSetEvent.OutputTuple, E3RefundManagerSetEvent.OutputObject>;
    getEvent(key: 'E3RefundManagerUpdated'): TypedContractEvent<E3RefundManagerUpdatedEvent.InputTuple, E3RefundManagerUpdatedEvent.OutputTuple, E3RefundManagerUpdatedEvent.OutputObject>;
    getEvent(key: 'EIP712DomainChanged'): TypedContractEvent<EIP712DomainChangedEvent.InputTuple, EIP712DomainChangedEvent.OutputTuple, EIP712DomainChangedEvent.OutputObject>;
    getEvent(key: 'InterfoldSet'): TypedContractEvent<InterfoldSetEvent.InputTuple, InterfoldSetEvent.OutputTuple, InterfoldSetEvent.OutputObject>;
    getEvent(key: 'InterfoldUpdated'): TypedContractEvent<InterfoldUpdatedEvent.InputTuple, InterfoldUpdatedEvent.OutputTuple, InterfoldUpdatedEvent.OutputObject>;
    getEvent(key: 'NodeBanUpdated'): TypedContractEvent<NodeBanUpdatedEvent.InputTuple, NodeBanUpdatedEvent.OutputTuple, NodeBanUpdatedEvent.OutputObject>;
    getEvent(key: 'RoleAdminChanged'): TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
    getEvent(key: 'RoleGranted'): TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
    getEvent(key: 'RoleRevoked'): TypedContractEvent<RoleRevokedEvent.InputTuple, RoleRevokedEvent.OutputTuple, RoleRevokedEvent.OutputObject>;
    getEvent(key: 'RoutingFailed'): TypedContractEvent<RoutingFailedEvent.InputTuple, RoutingFailedEvent.OutputTuple, RoutingFailedEvent.OutputObject>;
    getEvent(key: 'SlashExecuted'): TypedContractEvent<SlashExecutedEvent.InputTuple, SlashExecutedEvent.OutputTuple, SlashExecutedEvent.OutputObject>;
    getEvent(key: 'SlashPolicyUpdated'): TypedContractEvent<SlashPolicyUpdatedEvent.InputTuple, SlashPolicyUpdatedEvent.OutputTuple, SlashPolicyUpdatedEvent.OutputObject>;
    getEvent(key: 'SlashProposed'): TypedContractEvent<SlashProposedEvent.InputTuple, SlashProposedEvent.OutputTuple, SlashProposedEvent.OutputObject>;
    getEvent(key: 'SlashedFundsEscrowedToRefund'): TypedContractEvent<SlashedFundsEscrowedToRefundEvent.InputTuple, SlashedFundsEscrowedToRefundEvent.OutputTuple, SlashedFundsEscrowedToRefundEvent.OutputObject>;
    filters: {
        'AppealFiled(uint256,address,bytes32,string)': TypedContractEvent<AppealFiledEvent.InputTuple, AppealFiledEvent.OutputTuple, AppealFiledEvent.OutputObject>;
        AppealFiled: TypedContractEvent<AppealFiledEvent.InputTuple, AppealFiledEvent.OutputTuple, AppealFiledEvent.OutputObject>;
        'AppealResolved(uint256,address,bool,address,string)': TypedContractEvent<AppealResolvedEvent.InputTuple, AppealResolvedEvent.OutputTuple, AppealResolvedEvent.OutputObject>;
        AppealResolved: TypedContractEvent<AppealResolvedEvent.InputTuple, AppealResolvedEvent.OutputTuple, AppealResolvedEvent.OutputObject>;
        'BanCancelled(address,address)': TypedContractEvent<BanCancelledEvent.InputTuple, BanCancelledEvent.OutputTuple, BanCancelledEvent.OutputObject>;
        BanCancelled: TypedContractEvent<BanCancelledEvent.InputTuple, BanCancelledEvent.OutputTuple, BanCancelledEvent.OutputObject>;
        'BanProposed(address,bytes32,address)': TypedContractEvent<BanProposedEvent.InputTuple, BanProposedEvent.OutputTuple, BanProposedEvent.OutputObject>;
        BanProposed: TypedContractEvent<BanProposedEvent.InputTuple, BanProposedEvent.OutputTuple, BanProposedEvent.OutputObject>;
        'BondingRegistrySet(address)': TypedContractEvent<BondingRegistrySetEvent.InputTuple, BondingRegistrySetEvent.OutputTuple, BondingRegistrySetEvent.OutputObject>;
        BondingRegistrySet: TypedContractEvent<BondingRegistrySetEvent.InputTuple, BondingRegistrySetEvent.OutputTuple, BondingRegistrySetEvent.OutputObject>;
        'BondingRegistryUpdated(address,address)': TypedContractEvent<BondingRegistryUpdatedEvent.InputTuple, BondingRegistryUpdatedEvent.OutputTuple, BondingRegistryUpdatedEvent.OutputObject>;
        BondingRegistryUpdated: TypedContractEvent<BondingRegistryUpdatedEvent.InputTuple, BondingRegistryUpdatedEvent.OutputTuple, BondingRegistryUpdatedEvent.OutputObject>;
        'CiphernodeRegistrySet(address)': TypedContractEvent<CiphernodeRegistrySetEvent.InputTuple, CiphernodeRegistrySetEvent.OutputTuple, CiphernodeRegistrySetEvent.OutputObject>;
        CiphernodeRegistrySet: TypedContractEvent<CiphernodeRegistrySetEvent.InputTuple, CiphernodeRegistrySetEvent.OutputTuple, CiphernodeRegistrySetEvent.OutputObject>;
        'CiphernodeRegistryUpdated(address,address)': TypedContractEvent<CiphernodeRegistryUpdatedEvent.InputTuple, CiphernodeRegistryUpdatedEvent.OutputTuple, CiphernodeRegistryUpdatedEvent.OutputObject>;
        CiphernodeRegistryUpdated: TypedContractEvent<CiphernodeRegistryUpdatedEvent.InputTuple, CiphernodeRegistryUpdatedEvent.OutputTuple, CiphernodeRegistryUpdatedEvent.OutputObject>;
        'DefaultAdminDelayChangeCanceled()': TypedContractEvent<DefaultAdminDelayChangeCanceledEvent.InputTuple, DefaultAdminDelayChangeCanceledEvent.OutputTuple, DefaultAdminDelayChangeCanceledEvent.OutputObject>;
        DefaultAdminDelayChangeCanceled: TypedContractEvent<DefaultAdminDelayChangeCanceledEvent.InputTuple, DefaultAdminDelayChangeCanceledEvent.OutputTuple, DefaultAdminDelayChangeCanceledEvent.OutputObject>;
        'DefaultAdminDelayChangeScheduled(uint48,uint48)': TypedContractEvent<DefaultAdminDelayChangeScheduledEvent.InputTuple, DefaultAdminDelayChangeScheduledEvent.OutputTuple, DefaultAdminDelayChangeScheduledEvent.OutputObject>;
        DefaultAdminDelayChangeScheduled: TypedContractEvent<DefaultAdminDelayChangeScheduledEvent.InputTuple, DefaultAdminDelayChangeScheduledEvent.OutputTuple, DefaultAdminDelayChangeScheduledEvent.OutputObject>;
        'DefaultAdminTransferCanceled()': TypedContractEvent<DefaultAdminTransferCanceledEvent.InputTuple, DefaultAdminTransferCanceledEvent.OutputTuple, DefaultAdminTransferCanceledEvent.OutputObject>;
        DefaultAdminTransferCanceled: TypedContractEvent<DefaultAdminTransferCanceledEvent.InputTuple, DefaultAdminTransferCanceledEvent.OutputTuple, DefaultAdminTransferCanceledEvent.OutputObject>;
        'DefaultAdminTransferScheduled(address,uint48)': TypedContractEvent<DefaultAdminTransferScheduledEvent.InputTuple, DefaultAdminTransferScheduledEvent.OutputTuple, DefaultAdminTransferScheduledEvent.OutputObject>;
        DefaultAdminTransferScheduled: TypedContractEvent<DefaultAdminTransferScheduledEvent.InputTuple, DefaultAdminTransferScheduledEvent.OutputTuple, DefaultAdminTransferScheduledEvent.OutputObject>;
        'E3RefundManagerSet(address)': TypedContractEvent<E3RefundManagerSetEvent.InputTuple, E3RefundManagerSetEvent.OutputTuple, E3RefundManagerSetEvent.OutputObject>;
        E3RefundManagerSet: TypedContractEvent<E3RefundManagerSetEvent.InputTuple, E3RefundManagerSetEvent.OutputTuple, E3RefundManagerSetEvent.OutputObject>;
        'E3RefundManagerUpdated(address,address)': TypedContractEvent<E3RefundManagerUpdatedEvent.InputTuple, E3RefundManagerUpdatedEvent.OutputTuple, E3RefundManagerUpdatedEvent.OutputObject>;
        E3RefundManagerUpdated: TypedContractEvent<E3RefundManagerUpdatedEvent.InputTuple, E3RefundManagerUpdatedEvent.OutputTuple, E3RefundManagerUpdatedEvent.OutputObject>;
        'EIP712DomainChanged()': TypedContractEvent<EIP712DomainChangedEvent.InputTuple, EIP712DomainChangedEvent.OutputTuple, EIP712DomainChangedEvent.OutputObject>;
        EIP712DomainChanged: TypedContractEvent<EIP712DomainChangedEvent.InputTuple, EIP712DomainChangedEvent.OutputTuple, EIP712DomainChangedEvent.OutputObject>;
        'InterfoldSet(address)': TypedContractEvent<InterfoldSetEvent.InputTuple, InterfoldSetEvent.OutputTuple, InterfoldSetEvent.OutputObject>;
        InterfoldSet: TypedContractEvent<InterfoldSetEvent.InputTuple, InterfoldSetEvent.OutputTuple, InterfoldSetEvent.OutputObject>;
        'InterfoldUpdated(address,address)': TypedContractEvent<InterfoldUpdatedEvent.InputTuple, InterfoldUpdatedEvent.OutputTuple, InterfoldUpdatedEvent.OutputObject>;
        InterfoldUpdated: TypedContractEvent<InterfoldUpdatedEvent.InputTuple, InterfoldUpdatedEvent.OutputTuple, InterfoldUpdatedEvent.OutputObject>;
        'NodeBanUpdated(address,bool,bytes32,address)': TypedContractEvent<NodeBanUpdatedEvent.InputTuple, NodeBanUpdatedEvent.OutputTuple, NodeBanUpdatedEvent.OutputObject>;
        NodeBanUpdated: TypedContractEvent<NodeBanUpdatedEvent.InputTuple, NodeBanUpdatedEvent.OutputTuple, NodeBanUpdatedEvent.OutputObject>;
        'RoleAdminChanged(bytes32,bytes32,bytes32)': TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
        RoleAdminChanged: TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
        'RoleGranted(bytes32,address,address)': TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
        RoleGranted: TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
        'RoleRevoked(bytes32,address,address)': TypedContractEvent<RoleRevokedEvent.InputTuple, RoleRevokedEvent.OutputTuple, RoleRevokedEvent.OutputObject>;
        RoleRevoked: TypedContractEvent<RoleRevokedEvent.InputTuple, RoleRevokedEvent.OutputTuple, RoleRevokedEvent.OutputObject>;
        'RoutingFailed(uint256,uint256)': TypedContractEvent<RoutingFailedEvent.InputTuple, RoutingFailedEvent.OutputTuple, RoutingFailedEvent.OutputObject>;
        RoutingFailed: TypedContractEvent<RoutingFailedEvent.InputTuple, RoutingFailedEvent.OutputTuple, RoutingFailedEvent.OutputObject>;
        'SlashExecuted(uint256,uint256,address,bytes32,uint256,uint256,bool,uint8)': TypedContractEvent<SlashExecutedEvent.InputTuple, SlashExecutedEvent.OutputTuple, SlashExecutedEvent.OutputObject>;
        SlashExecuted: TypedContractEvent<SlashExecutedEvent.InputTuple, SlashExecutedEvent.OutputTuple, SlashExecutedEvent.OutputObject>;
        'SlashPolicyUpdated(bytes32,tuple)': TypedContractEvent<SlashPolicyUpdatedEvent.InputTuple, SlashPolicyUpdatedEvent.OutputTuple, SlashPolicyUpdatedEvent.OutputObject>;
        SlashPolicyUpdated: TypedContractEvent<SlashPolicyUpdatedEvent.InputTuple, SlashPolicyUpdatedEvent.OutputTuple, SlashPolicyUpdatedEvent.OutputObject>;
        'SlashProposed(uint256,uint256,address,bytes32,uint256,uint256,uint256,address,uint8)': TypedContractEvent<SlashProposedEvent.InputTuple, SlashProposedEvent.OutputTuple, SlashProposedEvent.OutputObject>;
        SlashProposed: TypedContractEvent<SlashProposedEvent.InputTuple, SlashProposedEvent.OutputTuple, SlashProposedEvent.OutputObject>;
        'SlashedFundsEscrowedToRefund(uint256,uint256)': TypedContractEvent<SlashedFundsEscrowedToRefundEvent.InputTuple, SlashedFundsEscrowedToRefundEvent.OutputTuple, SlashedFundsEscrowedToRefundEvent.OutputObject>;
        SlashedFundsEscrowedToRefund: TypedContractEvent<SlashedFundsEscrowedToRefundEvent.InputTuple, SlashedFundsEscrowedToRefundEvent.OutputTuple, SlashedFundsEscrowedToRefundEvent.OutputObject>;
    };
}
//# sourceMappingURL=SlashingManager.d.ts.map