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 ISlashingManagerInterface extends Interface {
    getFunction(nameOrSignature: "addSlasher" | "attestationDomainSeparator" | "bondingRegistry" | "cancelBan" | "ciphernodeRegistry" | "confirmBan" | "escrowSlashedFundsToRefund" | "executeSlash" | "fileAppeal" | "getSlashPolicy" | "getSlashProposal" | "hasOpenLaneBProposal" | "isBanned" | "proposeBan" | "proposeSlash" | "proposeSlashByDkgParty" | "proposeSlashEvidence" | "removeSlasher" | "resolveAppeal" | "setBondingRegistry" | "setE3RefundManager" | "setSlashPolicy" | "totalProposals" | "unbanNode" | "updateBanStatus"): FunctionFragment;
    getEvent(nameOrSignatureOrTopic: "AppealFiled" | "AppealResolved" | "BanCancelled" | "BanProposed" | "BondingRegistrySet" | "CiphernodeRegistrySet" | "E3RefundManagerSet" | "InterfoldSet" | "NodeBanUpdated" | "RoutingFailed" | "SlashExecuted" | "SlashPolicyUpdated" | "SlashProposed" | "SlashedFundsEscrowedToRefund"): EventFragment;
    encodeFunctionData(functionFragment: 'addSlasher', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'attestationDomainSeparator', values?: undefined): string;
    encodeFunctionData(functionFragment: 'bondingRegistry', values?: undefined): string;
    encodeFunctionData(functionFragment: 'cancelBan', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'ciphernodeRegistry', values?: undefined): string;
    encodeFunctionData(functionFragment: 'confirmBan', values: [AddressLike, BytesLike]): string;
    encodeFunctionData(functionFragment: 'escrowSlashedFundsToRefund', values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: 'executeSlash', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'fileAppeal', values: [BigNumberish, string]): string;
    encodeFunctionData(functionFragment: 'getSlashPolicy', values: [BytesLike]): string;
    encodeFunctionData(functionFragment: 'getSlashProposal', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'hasOpenLaneBProposal', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'isBanned', values: [AddressLike]): 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: 'resolveAppeal', values: [BigNumberish, boolean, string]): string;
    encodeFunctionData(functionFragment: 'setBondingRegistry', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setE3RefundManager', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setSlashPolicy', values: [BytesLike, ISlashingManager.SlashPolicyStruct]): string;
    encodeFunctionData(functionFragment: 'totalProposals', values?: undefined): string;
    encodeFunctionData(functionFragment: 'unbanNode', values: [AddressLike, BytesLike]): string;
    encodeFunctionData(functionFragment: 'updateBanStatus', values: [AddressLike, boolean, BytesLike]): string;
    decodeFunctionResult(functionFragment: 'addSlasher', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'attestationDomainSeparator', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'bondingRegistry', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'cancelBan', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ciphernodeRegistry', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'confirmBan', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'escrowSlashedFundsToRefund', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'executeSlash', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fileAppeal', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getSlashPolicy', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getSlashProposal', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasOpenLaneBProposal', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isBanned', 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: 'resolveAppeal', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setBondingRegistry', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setE3RefundManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setSlashPolicy', 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 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 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 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 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 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 ISlashingManager extends BaseContract {
    connect(runner?: ContractRunner | null): ISlashingManager;
    waitForDeployment(): Promise<this>;
    interface: ISlashingManagerInterface;
    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>;
    addSlasher: TypedContractMethod<[
        slasher: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    attestationDomainSeparator: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    bondingRegistry: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    cancelBan: TypedContractMethod<[
        node: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    ciphernodeRegistry: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    confirmBan: TypedContractMethod<[
        node: AddressLike,
        reason: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    escrowSlashedFundsToRefund: TypedContractMethod<[
        e3Id: BigNumberish,
        amount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    executeSlash: TypedContractMethod<[
        proposalId: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    fileAppeal: TypedContractMethod<[
        proposalId: BigNumberish,
        evidence: string
    ], [
        void
    ], 'nonpayable'>;
    getSlashPolicy: TypedContractMethod<[
        reason: BytesLike
    ], [
        ISlashingManager.SlashPolicyStructOutput
    ], 'view'>;
    getSlashProposal: TypedContractMethod<[
        proposalId: BigNumberish
    ], [
        ISlashingManager.SlashProposalStructOutput
    ], 'view'>;
    hasOpenLaneBProposal: TypedContractMethod<[
        operator: AddressLike
    ], [
        boolean
    ], 'view'>;
    isBanned: TypedContractMethod<[
        node: AddressLike
    ], [
        boolean
    ], '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'>;
    resolveAppeal: TypedContractMethod<[
        proposalId: BigNumberish,
        appealUpheld: boolean,
        resolution: string
    ], [
        void
    ], 'nonpayable'>;
    setBondingRegistry: TypedContractMethod<[
        newBondingRegistry: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setE3RefundManager: TypedContractMethod<[
        newRefundManager: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setSlashPolicy: TypedContractMethod<[
        reason: BytesLike,
        policy: ISlashingManager.SlashPolicyStruct
    ], [
        void
    ], 'nonpayable'>;
    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: 'addSlasher'): TypedContractMethod<[
        slasher: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'attestationDomainSeparator'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'bondingRegistry'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'cancelBan'): TypedContractMethod<[
        node: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'ciphernodeRegistry'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'confirmBan'): TypedContractMethod<[
        node: AddressLike,
        reason: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'escrowSlashedFundsToRefund'): TypedContractMethod<[
        e3Id: BigNumberish,
        amount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'executeSlash'): TypedContractMethod<[
        proposalId: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'fileAppeal'): TypedContractMethod<[
        proposalId: BigNumberish,
        evidence: string
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'getSlashPolicy'): TypedContractMethod<[
        reason: BytesLike
    ], [
        ISlashingManager.SlashPolicyStructOutput
    ], 'view'>;
    getFunction(nameOrSignature: 'getSlashProposal'): TypedContractMethod<[
        proposalId: BigNumberish
    ], [
        ISlashingManager.SlashProposalStructOutput
    ], 'view'>;
    getFunction(nameOrSignature: 'hasOpenLaneBProposal'): TypedContractMethod<[
        operator: AddressLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'isBanned'): TypedContractMethod<[
        node: AddressLike
    ], [
        boolean
    ], '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: 'resolveAppeal'): TypedContractMethod<[
        proposalId: BigNumberish,
        appealUpheld: boolean,
        resolution: string
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setBondingRegistry'): TypedContractMethod<[
        newBondingRegistry: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setE3RefundManager'): TypedContractMethod<[
        newRefundManager: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setSlashPolicy'): TypedContractMethod<[
        reason: BytesLike,
        policy: ISlashingManager.SlashPolicyStruct
    ], [
        void
    ], 'nonpayable'>;
    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: 'CiphernodeRegistrySet'): TypedContractEvent<CiphernodeRegistrySetEvent.InputTuple, CiphernodeRegistrySetEvent.OutputTuple, CiphernodeRegistrySetEvent.OutputObject>;
    getEvent(key: 'E3RefundManagerSet'): TypedContractEvent<E3RefundManagerSetEvent.InputTuple, E3RefundManagerSetEvent.OutputTuple, E3RefundManagerSetEvent.OutputObject>;
    getEvent(key: 'InterfoldSet'): TypedContractEvent<InterfoldSetEvent.InputTuple, InterfoldSetEvent.OutputTuple, InterfoldSetEvent.OutputObject>;
    getEvent(key: 'NodeBanUpdated'): TypedContractEvent<NodeBanUpdatedEvent.InputTuple, NodeBanUpdatedEvent.OutputTuple, NodeBanUpdatedEvent.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>;
        'CiphernodeRegistrySet(address)': TypedContractEvent<CiphernodeRegistrySetEvent.InputTuple, CiphernodeRegistrySetEvent.OutputTuple, CiphernodeRegistrySetEvent.OutputObject>;
        CiphernodeRegistrySet: TypedContractEvent<CiphernodeRegistrySetEvent.InputTuple, CiphernodeRegistrySetEvent.OutputTuple, CiphernodeRegistrySetEvent.OutputObject>;
        'E3RefundManagerSet(address)': TypedContractEvent<E3RefundManagerSetEvent.InputTuple, E3RefundManagerSetEvent.OutputTuple, E3RefundManagerSetEvent.OutputObject>;
        E3RefundManagerSet: TypedContractEvent<E3RefundManagerSetEvent.InputTuple, E3RefundManagerSetEvent.OutputTuple, E3RefundManagerSetEvent.OutputObject>;
        'InterfoldSet(address)': TypedContractEvent<InterfoldSetEvent.InputTuple, InterfoldSetEvent.OutputTuple, InterfoldSetEvent.OutputObject>;
        InterfoldSet: TypedContractEvent<InterfoldSetEvent.InputTuple, InterfoldSetEvent.OutputTuple, InterfoldSetEvent.OutputObject>;
        'NodeBanUpdated(address,bool,bytes32,address)': TypedContractEvent<NodeBanUpdatedEvent.InputTuple, NodeBanUpdatedEvent.OutputTuple, NodeBanUpdatedEvent.OutputObject>;
        NodeBanUpdated: TypedContractEvent<NodeBanUpdatedEvent.InputTuple, NodeBanUpdatedEvent.OutputTuple, NodeBanUpdatedEvent.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=ISlashingManager.d.ts.map