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 interface IBondingRegistryInterface extends Interface {
    getFunction(nameOrSignature: "addTicketBalance" | "availableTickets" | "bondLicense" | "claimExits" | "deregisterOperator" | "distributeRewards" | "exitDelay" | "getLicenseBond" | "getLicenseToken" | "getTicketBalance" | "getTicketBalanceAtBlock" | "getTicketToken" | "hasExitInProgress" | "isActive" | "isLicensed" | "isRegistered" | "licenseRequiredBond" | "minTicketBalance" | "numActiveOperators" | "pendingExits" | "previewClaimable" | "redirectSlashedTicketFunds" | "registerOperator" | "removeTicketBalance" | "revokeRewardDistributor" | "setExitDelay" | "setLicenseActiveBps" | "setLicenseRequiredBond" | "setLicenseToken" | "setMinTicketBalance" | "setRegistry" | "setRewardDistributor" | "setSlashedFundsTreasury" | "setSlashingManager" | "setTicketPrice" | "setTicketToken" | "slashLicenseBond" | "slashTicketBalance" | "slashedFundsTreasury" | "slashedLicenseBond" | "slashedTicketBalance" | "ticketPrice" | "unbondLicense" | "withdrawSlashedFunds"): FunctionFragment;
    getEvent(nameOrSignatureOrTopic: "CiphernodeDeregistrationRequested" | "ConfigurationUpdated" | "LicenseBondUpdated" | "LicenseTokenSet" | "LicenseTransferShortfall" | "OperatorActivationChanged" | "RegistrySet" | "RewardDistributorUpdated" | "SlashedFundsTreasurySet" | "SlashedFundsWithdrawn" | "SlashingManagerUpdated" | "TicketBalanceUpdated" | "TicketTokenSet"): EventFragment;
    encodeFunctionData(functionFragment: 'addTicketBalance', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'availableTickets', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'bondLicense', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'claimExits', values: [BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: 'deregisterOperator', values?: undefined): string;
    encodeFunctionData(functionFragment: 'distributeRewards', values: [AddressLike, AddressLike[], BigNumberish[]]): string;
    encodeFunctionData(functionFragment: 'exitDelay', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getLicenseBond', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'getLicenseToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getTicketBalance', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'getTicketBalanceAtBlock', values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: 'getTicketToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'hasExitInProgress', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'isActive', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'isLicensed', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'isRegistered', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'licenseRequiredBond', values?: undefined): string;
    encodeFunctionData(functionFragment: 'minTicketBalance', values?: undefined): string;
    encodeFunctionData(functionFragment: 'numActiveOperators', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pendingExits', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'previewClaimable', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'redirectSlashedTicketFunds', values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: 'registerOperator', values?: undefined): string;
    encodeFunctionData(functionFragment: 'removeTicketBalance', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'revokeRewardDistributor', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setExitDelay', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'setLicenseActiveBps', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'setLicenseRequiredBond', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'setLicenseToken', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setMinTicketBalance', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'setRegistry', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setRewardDistributor', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setSlashedFundsTreasury', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setSlashingManager', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'setTicketPrice', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'setTicketToken', values: [AddressLike]): string;
    encodeFunctionData(functionFragment: 'slashLicenseBond', values: [AddressLike, BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: 'slashTicketBalance', values: [AddressLike, BigNumberish, BytesLike]): string;
    encodeFunctionData(functionFragment: 'slashedFundsTreasury', values?: undefined): string;
    encodeFunctionData(functionFragment: 'slashedLicenseBond', values?: undefined): string;
    encodeFunctionData(functionFragment: 'slashedTicketBalance', values?: undefined): string;
    encodeFunctionData(functionFragment: 'ticketPrice', values?: undefined): string;
    encodeFunctionData(functionFragment: 'unbondLicense', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'withdrawSlashedFunds', values: [BigNumberish, BigNumberish]): string;
    decodeFunctionResult(functionFragment: 'addTicketBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'availableTickets', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'bondLicense', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimExits', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deregisterOperator', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'distributeRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'exitDelay', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getLicenseBond', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getLicenseToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTicketBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTicketBalanceAtBlock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTicketToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hasExitInProgress', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isActive', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isLicensed', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isRegistered', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'licenseRequiredBond', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'minTicketBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'numActiveOperators', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pendingExits', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'previewClaimable', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'redirectSlashedTicketFunds', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'registerOperator', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'removeTicketBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'revokeRewardDistributor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setExitDelay', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setLicenseActiveBps', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setLicenseRequiredBond', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setLicenseToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setMinTicketBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setRegistry', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setRewardDistributor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setSlashedFundsTreasury', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setSlashingManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setTicketPrice', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setTicketToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'slashLicenseBond', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'slashTicketBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'slashedFundsTreasury', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'slashedLicenseBond', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'slashedTicketBalance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ticketPrice', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unbondLicense', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawSlashedFunds', data: BytesLike): Result;
}
export declare namespace CiphernodeDeregistrationRequestedEvent {
    type InputTuple = [operator: AddressLike, unlockAt: BigNumberish];
    type OutputTuple = [operator: string, unlockAt: bigint];
    interface OutputObject {
        operator: string;
        unlockAt: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ConfigurationUpdatedEvent {
    type InputTuple = [parameter: BytesLike, oldValue: BigNumberish, newValue: BigNumberish];
    type OutputTuple = [parameter: string, oldValue: bigint, newValue: bigint];
    interface OutputObject {
        parameter: string;
        oldValue: bigint;
        newValue: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace LicenseBondUpdatedEvent {
    type InputTuple = [operator: AddressLike, delta: BigNumberish, newBond: BigNumberish, reason: BytesLike];
    type OutputTuple = [operator: string, delta: bigint, newBond: bigint, reason: string];
    interface OutputObject {
        operator: string;
        delta: bigint;
        newBond: bigint;
        reason: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace LicenseTokenSetEvent {
    type InputTuple = [licenseToken: AddressLike];
    type OutputTuple = [licenseToken: string];
    interface OutputObject {
        licenseToken: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace LicenseTransferShortfallEvent {
    type InputTuple = [recipient: AddressLike, expectedAmount: BigNumberish, actualAmount: BigNumberish];
    type OutputTuple = [recipient: string, expectedAmount: bigint, actualAmount: bigint];
    interface OutputObject {
        recipient: string;
        expectedAmount: bigint;
        actualAmount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace OperatorActivationChangedEvent {
    type InputTuple = [operator: AddressLike, active: boolean];
    type OutputTuple = [operator: string, active: boolean];
    interface OutputObject {
        operator: string;
        active: boolean;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RegistrySetEvent {
    type InputTuple = [registry: AddressLike];
    type OutputTuple = [registry: string];
    interface OutputObject {
        registry: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RewardDistributorUpdatedEvent {
    type InputTuple = [distributor: AddressLike, authorized: boolean];
    type OutputTuple = [distributor: string, authorized: boolean];
    interface OutputObject {
        distributor: string;
        authorized: boolean;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SlashedFundsTreasurySetEvent {
    type InputTuple = [treasury: AddressLike];
    type OutputTuple = [treasury: string];
    interface OutputObject {
        treasury: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SlashedFundsWithdrawnEvent {
    type InputTuple = [to: AddressLike, ticketAmount: BigNumberish, licenseAmount: BigNumberish];
    type OutputTuple = [to: string, ticketAmount: bigint, licenseAmount: bigint];
    interface OutputObject {
        to: string;
        ticketAmount: bigint;
        licenseAmount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace SlashingManagerUpdatedEvent {
    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 TicketBalanceUpdatedEvent {
    type InputTuple = [operator: AddressLike, delta: BigNumberish, newBalance: BigNumberish, reason: BytesLike];
    type OutputTuple = [operator: string, delta: bigint, newBalance: bigint, reason: string];
    interface OutputObject {
        operator: string;
        delta: bigint;
        newBalance: bigint;
        reason: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TicketTokenSetEvent {
    type InputTuple = [ticketToken: AddressLike];
    type OutputTuple = [ticketToken: string];
    interface OutputObject {
        ticketToken: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export interface IBondingRegistry extends BaseContract {
    connect(runner?: ContractRunner | null): IBondingRegistry;
    waitForDeployment(): Promise<this>;
    interface: IBondingRegistryInterface;
    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>;
    addTicketBalance: TypedContractMethod<[
        amount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    availableTickets: TypedContractMethod<[
        operator: AddressLike
    ], [
        bigint
    ], 'view'>;
    bondLicense: TypedContractMethod<[
        amount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    claimExits: TypedContractMethod<[
        maxTicketAmount: BigNumberish,
        maxLicenseAmount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    deregisterOperator: TypedContractMethod<[
    ], [
        void
    ], 'nonpayable'>;
    distributeRewards: TypedContractMethod<[
        rewardToken: AddressLike,
        operators: AddressLike[],
        amounts: BigNumberish[]
    ], [
        void
    ], 'nonpayable'>;
    exitDelay: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getLicenseBond: TypedContractMethod<[
        operator: AddressLike
    ], [
        bigint
    ], 'view'>;
    getLicenseToken: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getTicketBalance: TypedContractMethod<[
        operator: AddressLike
    ], [
        bigint
    ], 'view'>;
    getTicketBalanceAtBlock: TypedContractMethod<[
        operator: AddressLike,
        blockNumber: BigNumberish
    ], [
        bigint
    ], 'view'>;
    getTicketToken: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    hasExitInProgress: TypedContractMethod<[
        operator: AddressLike
    ], [
        boolean
    ], 'view'>;
    isActive: TypedContractMethod<[
        operator: AddressLike
    ], [
        boolean
    ], 'view'>;
    isLicensed: TypedContractMethod<[
        operator: AddressLike
    ], [
        boolean
    ], 'view'>;
    isRegistered: TypedContractMethod<[
        operator: AddressLike
    ], [
        boolean
    ], 'view'>;
    licenseRequiredBond: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    minTicketBalance: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    numActiveOperators: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    pendingExits: TypedContractMethod<[
        operator: AddressLike
    ], [
        [bigint, bigint] & {
            ticket: bigint;
            license: bigint;
        }
    ], 'view'>;
    previewClaimable: TypedContractMethod<[
        operator: AddressLike
    ], [
        [bigint, bigint] & {
            ticket: bigint;
            license: bigint;
        }
    ], 'view'>;
    redirectSlashedTicketFunds: TypedContractMethod<[
        to: AddressLike,
        amount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    registerOperator: TypedContractMethod<[
    ], [
        void
    ], 'nonpayable'>;
    removeTicketBalance: TypedContractMethod<[
        amount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    revokeRewardDistributor: TypedContractMethod<[
        distributor: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setExitDelay: TypedContractMethod<[
        newExitDelay: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    setLicenseActiveBps: TypedContractMethod<[
        newBps: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    setLicenseRequiredBond: TypedContractMethod<[
        newLicenseRequiredBond: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    setLicenseToken: TypedContractMethod<[
        newLicenseToken: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setMinTicketBalance: TypedContractMethod<[
        newMinTicketBalance: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    setRegistry: TypedContractMethod<[
        newRegistry: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setRewardDistributor: TypedContractMethod<[
        newRewardDistributor: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setSlashedFundsTreasury: TypedContractMethod<[
        newSlashedFundsTreasury: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setSlashingManager: TypedContractMethod<[
        newSlashingManager: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    setTicketPrice: TypedContractMethod<[
        newTicketPrice: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    setTicketToken: TypedContractMethod<[
        newTicketToken: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    slashLicenseBond: TypedContractMethod<[
        operator: AddressLike,
        amount: BigNumberish,
        reason: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    slashTicketBalance: TypedContractMethod<[
        operator: AddressLike,
        amount: BigNumberish,
        reason: BytesLike
    ], [
        bigint
    ], 'nonpayable'>;
    slashedFundsTreasury: TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    slashedLicenseBond: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    slashedTicketBalance: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    ticketPrice: TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    unbondLicense: TypedContractMethod<[
        amount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    withdrawSlashedFunds: TypedContractMethod<[
        ticketAmount: BigNumberish,
        licenseAmount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
    getFunction(nameOrSignature: 'addTicketBalance'): TypedContractMethod<[
        amount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'availableTickets'): TypedContractMethod<[
        operator: AddressLike
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'bondLicense'): TypedContractMethod<[
        amount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'claimExits'): TypedContractMethod<[
        maxTicketAmount: BigNumberish,
        maxLicenseAmount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'deregisterOperator'): TypedContractMethod<[
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'distributeRewards'): TypedContractMethod<[
        rewardToken: AddressLike,
        operators: AddressLike[],
        amounts: BigNumberish[]
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'exitDelay'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'getLicenseBond'): TypedContractMethod<[
        operator: AddressLike
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'getLicenseToken'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'getTicketBalance'): TypedContractMethod<[
        operator: AddressLike
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'getTicketBalanceAtBlock'): TypedContractMethod<[
        operator: AddressLike,
        blockNumber: BigNumberish
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'getTicketToken'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'hasExitInProgress'): TypedContractMethod<[
        operator: AddressLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'isActive'): TypedContractMethod<[
        operator: AddressLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'isLicensed'): TypedContractMethod<[
        operator: AddressLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'isRegistered'): TypedContractMethod<[
        operator: AddressLike
    ], [
        boolean
    ], 'view'>;
    getFunction(nameOrSignature: 'licenseRequiredBond'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'minTicketBalance'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'numActiveOperators'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'pendingExits'): TypedContractMethod<[
        operator: AddressLike
    ], [
        [bigint, bigint] & {
            ticket: bigint;
            license: bigint;
        }
    ], 'view'>;
    getFunction(nameOrSignature: 'previewClaimable'): TypedContractMethod<[
        operator: AddressLike
    ], [
        [bigint, bigint] & {
            ticket: bigint;
            license: bigint;
        }
    ], 'view'>;
    getFunction(nameOrSignature: 'redirectSlashedTicketFunds'): TypedContractMethod<[
        to: AddressLike,
        amount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'registerOperator'): TypedContractMethod<[
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'removeTicketBalance'): TypedContractMethod<[
        amount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'revokeRewardDistributor'): TypedContractMethod<[
        distributor: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setExitDelay'): TypedContractMethod<[
        newExitDelay: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setLicenseActiveBps'): TypedContractMethod<[
        newBps: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setLicenseRequiredBond'): TypedContractMethod<[
        newLicenseRequiredBond: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setLicenseToken'): TypedContractMethod<[
        newLicenseToken: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setMinTicketBalance'): TypedContractMethod<[
        newMinTicketBalance: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setRegistry'): TypedContractMethod<[
        newRegistry: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setRewardDistributor'): TypedContractMethod<[
        newRewardDistributor: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setSlashedFundsTreasury'): TypedContractMethod<[
        newSlashedFundsTreasury: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setSlashingManager'): TypedContractMethod<[
        newSlashingManager: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setTicketPrice'): TypedContractMethod<[
        newTicketPrice: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'setTicketToken'): TypedContractMethod<[
        newTicketToken: AddressLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'slashLicenseBond'): TypedContractMethod<[
        operator: AddressLike,
        amount: BigNumberish,
        reason: BytesLike
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'slashTicketBalance'): TypedContractMethod<[
        operator: AddressLike,
        amount: BigNumberish,
        reason: BytesLike
    ], [
        bigint
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'slashedFundsTreasury'): TypedContractMethod<[
    ], [
        string
    ], 'view'>;
    getFunction(nameOrSignature: 'slashedLicenseBond'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'slashedTicketBalance'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'ticketPrice'): TypedContractMethod<[
    ], [
        bigint
    ], 'view'>;
    getFunction(nameOrSignature: 'unbondLicense'): TypedContractMethod<[
        amount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getFunction(nameOrSignature: 'withdrawSlashedFunds'): TypedContractMethod<[
        ticketAmount: BigNumberish,
        licenseAmount: BigNumberish
    ], [
        void
    ], 'nonpayable'>;
    getEvent(key: 'CiphernodeDeregistrationRequested'): TypedContractEvent<CiphernodeDeregistrationRequestedEvent.InputTuple, CiphernodeDeregistrationRequestedEvent.OutputTuple, CiphernodeDeregistrationRequestedEvent.OutputObject>;
    getEvent(key: 'ConfigurationUpdated'): TypedContractEvent<ConfigurationUpdatedEvent.InputTuple, ConfigurationUpdatedEvent.OutputTuple, ConfigurationUpdatedEvent.OutputObject>;
    getEvent(key: 'LicenseBondUpdated'): TypedContractEvent<LicenseBondUpdatedEvent.InputTuple, LicenseBondUpdatedEvent.OutputTuple, LicenseBondUpdatedEvent.OutputObject>;
    getEvent(key: 'LicenseTokenSet'): TypedContractEvent<LicenseTokenSetEvent.InputTuple, LicenseTokenSetEvent.OutputTuple, LicenseTokenSetEvent.OutputObject>;
    getEvent(key: 'LicenseTransferShortfall'): TypedContractEvent<LicenseTransferShortfallEvent.InputTuple, LicenseTransferShortfallEvent.OutputTuple, LicenseTransferShortfallEvent.OutputObject>;
    getEvent(key: 'OperatorActivationChanged'): TypedContractEvent<OperatorActivationChangedEvent.InputTuple, OperatorActivationChangedEvent.OutputTuple, OperatorActivationChangedEvent.OutputObject>;
    getEvent(key: 'RegistrySet'): TypedContractEvent<RegistrySetEvent.InputTuple, RegistrySetEvent.OutputTuple, RegistrySetEvent.OutputObject>;
    getEvent(key: 'RewardDistributorUpdated'): TypedContractEvent<RewardDistributorUpdatedEvent.InputTuple, RewardDistributorUpdatedEvent.OutputTuple, RewardDistributorUpdatedEvent.OutputObject>;
    getEvent(key: 'SlashedFundsTreasurySet'): TypedContractEvent<SlashedFundsTreasurySetEvent.InputTuple, SlashedFundsTreasurySetEvent.OutputTuple, SlashedFundsTreasurySetEvent.OutputObject>;
    getEvent(key: 'SlashedFundsWithdrawn'): TypedContractEvent<SlashedFundsWithdrawnEvent.InputTuple, SlashedFundsWithdrawnEvent.OutputTuple, SlashedFundsWithdrawnEvent.OutputObject>;
    getEvent(key: 'SlashingManagerUpdated'): TypedContractEvent<SlashingManagerUpdatedEvent.InputTuple, SlashingManagerUpdatedEvent.OutputTuple, SlashingManagerUpdatedEvent.OutputObject>;
    getEvent(key: 'TicketBalanceUpdated'): TypedContractEvent<TicketBalanceUpdatedEvent.InputTuple, TicketBalanceUpdatedEvent.OutputTuple, TicketBalanceUpdatedEvent.OutputObject>;
    getEvent(key: 'TicketTokenSet'): TypedContractEvent<TicketTokenSetEvent.InputTuple, TicketTokenSetEvent.OutputTuple, TicketTokenSetEvent.OutputObject>;
    filters: {
        'CiphernodeDeregistrationRequested(address,uint64)': TypedContractEvent<CiphernodeDeregistrationRequestedEvent.InputTuple, CiphernodeDeregistrationRequestedEvent.OutputTuple, CiphernodeDeregistrationRequestedEvent.OutputObject>;
        CiphernodeDeregistrationRequested: TypedContractEvent<CiphernodeDeregistrationRequestedEvent.InputTuple, CiphernodeDeregistrationRequestedEvent.OutputTuple, CiphernodeDeregistrationRequestedEvent.OutputObject>;
        'ConfigurationUpdated(bytes32,uint256,uint256)': TypedContractEvent<ConfigurationUpdatedEvent.InputTuple, ConfigurationUpdatedEvent.OutputTuple, ConfigurationUpdatedEvent.OutputObject>;
        ConfigurationUpdated: TypedContractEvent<ConfigurationUpdatedEvent.InputTuple, ConfigurationUpdatedEvent.OutputTuple, ConfigurationUpdatedEvent.OutputObject>;
        'LicenseBondUpdated(address,int256,uint256,bytes32)': TypedContractEvent<LicenseBondUpdatedEvent.InputTuple, LicenseBondUpdatedEvent.OutputTuple, LicenseBondUpdatedEvent.OutputObject>;
        LicenseBondUpdated: TypedContractEvent<LicenseBondUpdatedEvent.InputTuple, LicenseBondUpdatedEvent.OutputTuple, LicenseBondUpdatedEvent.OutputObject>;
        'LicenseTokenSet(address)': TypedContractEvent<LicenseTokenSetEvent.InputTuple, LicenseTokenSetEvent.OutputTuple, LicenseTokenSetEvent.OutputObject>;
        LicenseTokenSet: TypedContractEvent<LicenseTokenSetEvent.InputTuple, LicenseTokenSetEvent.OutputTuple, LicenseTokenSetEvent.OutputObject>;
        'LicenseTransferShortfall(address,uint256,uint256)': TypedContractEvent<LicenseTransferShortfallEvent.InputTuple, LicenseTransferShortfallEvent.OutputTuple, LicenseTransferShortfallEvent.OutputObject>;
        LicenseTransferShortfall: TypedContractEvent<LicenseTransferShortfallEvent.InputTuple, LicenseTransferShortfallEvent.OutputTuple, LicenseTransferShortfallEvent.OutputObject>;
        'OperatorActivationChanged(address,bool)': TypedContractEvent<OperatorActivationChangedEvent.InputTuple, OperatorActivationChangedEvent.OutputTuple, OperatorActivationChangedEvent.OutputObject>;
        OperatorActivationChanged: TypedContractEvent<OperatorActivationChangedEvent.InputTuple, OperatorActivationChangedEvent.OutputTuple, OperatorActivationChangedEvent.OutputObject>;
        'RegistrySet(address)': TypedContractEvent<RegistrySetEvent.InputTuple, RegistrySetEvent.OutputTuple, RegistrySetEvent.OutputObject>;
        RegistrySet: TypedContractEvent<RegistrySetEvent.InputTuple, RegistrySetEvent.OutputTuple, RegistrySetEvent.OutputObject>;
        'RewardDistributorUpdated(address,bool)': TypedContractEvent<RewardDistributorUpdatedEvent.InputTuple, RewardDistributorUpdatedEvent.OutputTuple, RewardDistributorUpdatedEvent.OutputObject>;
        RewardDistributorUpdated: TypedContractEvent<RewardDistributorUpdatedEvent.InputTuple, RewardDistributorUpdatedEvent.OutputTuple, RewardDistributorUpdatedEvent.OutputObject>;
        'SlashedFundsTreasurySet(address)': TypedContractEvent<SlashedFundsTreasurySetEvent.InputTuple, SlashedFundsTreasurySetEvent.OutputTuple, SlashedFundsTreasurySetEvent.OutputObject>;
        SlashedFundsTreasurySet: TypedContractEvent<SlashedFundsTreasurySetEvent.InputTuple, SlashedFundsTreasurySetEvent.OutputTuple, SlashedFundsTreasurySetEvent.OutputObject>;
        'SlashedFundsWithdrawn(address,uint256,uint256)': TypedContractEvent<SlashedFundsWithdrawnEvent.InputTuple, SlashedFundsWithdrawnEvent.OutputTuple, SlashedFundsWithdrawnEvent.OutputObject>;
        SlashedFundsWithdrawn: TypedContractEvent<SlashedFundsWithdrawnEvent.InputTuple, SlashedFundsWithdrawnEvent.OutputTuple, SlashedFundsWithdrawnEvent.OutputObject>;
        'SlashingManagerUpdated(address,address)': TypedContractEvent<SlashingManagerUpdatedEvent.InputTuple, SlashingManagerUpdatedEvent.OutputTuple, SlashingManagerUpdatedEvent.OutputObject>;
        SlashingManagerUpdated: TypedContractEvent<SlashingManagerUpdatedEvent.InputTuple, SlashingManagerUpdatedEvent.OutputTuple, SlashingManagerUpdatedEvent.OutputObject>;
        'TicketBalanceUpdated(address,int256,uint256,bytes32)': TypedContractEvent<TicketBalanceUpdatedEvent.InputTuple, TicketBalanceUpdatedEvent.OutputTuple, TicketBalanceUpdatedEvent.OutputObject>;
        TicketBalanceUpdated: TypedContractEvent<TicketBalanceUpdatedEvent.InputTuple, TicketBalanceUpdatedEvent.OutputTuple, TicketBalanceUpdatedEvent.OutputObject>;
        'TicketTokenSet(address)': TypedContractEvent<TicketTokenSetEvent.InputTuple, TicketTokenSetEvent.OutputTuple, TicketTokenSetEvent.OutputObject>;
        TicketTokenSet: TypedContractEvent<TicketTokenSetEvent.InputTuple, TicketTokenSetEvent.OutputTuple, TicketTokenSetEvent.OutputObject>;
    };
}
//# sourceMappingURL=IBondingRegistry.d.ts.map