import type { BaseContract, BigNumber, BytesLike, CallOverrides, PopulatedTransaction, Signer, utils } from "ethers";
import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "../../../../common";
export interface IKeep3rAccountanceInterface extends utils.Interface {
    functions: {
        "bonds(address,address)": FunctionFragment;
        "canActivateAfter(address,address)": FunctionFragment;
        "canWithdrawAfter(address,address)": FunctionFragment;
        "disputes(address)": FunctionFragment;
        "firstSeen(address)": FunctionFragment;
        "hasBonded(address)": FunctionFragment;
        "jobTokenCredits(address,address)": FunctionFragment;
        "jobs()": FunctionFragment;
        "keepers()": FunctionFragment;
        "pendingBonds(address,address)": FunctionFragment;
        "pendingUnbonds(address,address)": FunctionFragment;
        "workCompleted(address)": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "bonds" | "canActivateAfter" | "canWithdrawAfter" | "disputes" | "firstSeen" | "hasBonded" | "jobTokenCredits" | "jobs" | "keepers" | "pendingBonds" | "pendingUnbonds" | "workCompleted"): FunctionFragment;
    encodeFunctionData(functionFragment: "bonds", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "canActivateAfter", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "canWithdrawAfter", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "disputes", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "firstSeen", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "hasBonded", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "jobTokenCredits", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "jobs", values?: undefined): string;
    encodeFunctionData(functionFragment: "keepers", values?: undefined): string;
    encodeFunctionData(functionFragment: "pendingBonds", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "pendingUnbonds", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "workCompleted", values: [PromiseOrValue<string>]): string;
    decodeFunctionResult(functionFragment: "bonds", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "canActivateAfter", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "canWithdrawAfter", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "disputes", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "firstSeen", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "hasBonded", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "jobTokenCredits", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "jobs", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "keepers", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingBonds", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pendingUnbonds", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "workCompleted", data: BytesLike): Result;
    events: {
        "Bonding(address,address,uint256)": EventFragment;
        "Unbonding(address,address,uint256)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "Bonding"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Unbonding"): EventFragment;
}
export interface BondingEventObject {
    _keeper: string;
    _bonding: string;
    _amount: BigNumber;
}
export declare type BondingEvent = TypedEvent<[
    string,
    string,
    BigNumber
], BondingEventObject>;
export declare type BondingEventFilter = TypedEventFilter<BondingEvent>;
export interface UnbondingEventObject {
    _keeperOrJob: string;
    _unbonding: string;
    _amount: BigNumber;
}
export declare type UnbondingEvent = TypedEvent<[
    string,
    string,
    BigNumber
], UnbondingEventObject>;
export declare type UnbondingEventFilter = TypedEventFilter<UnbondingEvent>;
export interface IKeep3rAccountance extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: IKeep3rAccountanceInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        bonds(_keeper: PromiseOrValue<string>, _bond: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            _bonds: BigNumber;
        }>;
        canActivateAfter(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            _timestamp: BigNumber;
        }>;
        canWithdrawAfter(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            _timestamp: BigNumber;
        }>;
        disputes(_keeperOrJob: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean] & {
            _disputed: boolean;
        }>;
        firstSeen(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            timestamp: BigNumber;
        }>;
        hasBonded(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean] & {
            _hasBonded: boolean;
        }>;
        jobTokenCredits(_job: PromiseOrValue<string>, _token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            _amount: BigNumber;
        }>;
        jobs(overrides?: CallOverrides): Promise<[string[]] & {
            _jobList: string[];
        }>;
        keepers(overrides?: CallOverrides): Promise<[string[]] & {
            _keeperList: string[];
        }>;
        pendingBonds(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            _pendingBonds: BigNumber;
        }>;
        pendingUnbonds(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            _pendingUnbonds: BigNumber;
        }>;
        workCompleted(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber] & {
            _workCompleted: BigNumber;
        }>;
    };
    bonds(_keeper: PromiseOrValue<string>, _bond: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    canActivateAfter(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    canWithdrawAfter(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    disputes(_keeperOrJob: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    firstSeen(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    hasBonded(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    jobTokenCredits(_job: PromiseOrValue<string>, _token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    jobs(overrides?: CallOverrides): Promise<string[]>;
    keepers(overrides?: CallOverrides): Promise<string[]>;
    pendingBonds(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    pendingUnbonds(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    workCompleted(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    callStatic: {
        bonds(_keeper: PromiseOrValue<string>, _bond: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        canActivateAfter(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        canWithdrawAfter(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        disputes(_keeperOrJob: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        firstSeen(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        hasBonded(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        jobTokenCredits(_job: PromiseOrValue<string>, _token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        jobs(overrides?: CallOverrides): Promise<string[]>;
        keepers(overrides?: CallOverrides): Promise<string[]>;
        pendingBonds(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        pendingUnbonds(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        workCompleted(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    filters: {
        "Bonding(address,address,uint256)"(_keeper?: PromiseOrValue<string> | null, _bonding?: PromiseOrValue<string> | null, _amount?: null): BondingEventFilter;
        Bonding(_keeper?: PromiseOrValue<string> | null, _bonding?: PromiseOrValue<string> | null, _amount?: null): BondingEventFilter;
        "Unbonding(address,address,uint256)"(_keeperOrJob?: PromiseOrValue<string> | null, _unbonding?: PromiseOrValue<string> | null, _amount?: null): UnbondingEventFilter;
        Unbonding(_keeperOrJob?: PromiseOrValue<string> | null, _unbonding?: PromiseOrValue<string> | null, _amount?: null): UnbondingEventFilter;
    };
    estimateGas: {
        bonds(_keeper: PromiseOrValue<string>, _bond: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        canActivateAfter(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        canWithdrawAfter(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        disputes(_keeperOrJob: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        firstSeen(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        hasBonded(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        jobTokenCredits(_job: PromiseOrValue<string>, _token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        jobs(overrides?: CallOverrides): Promise<BigNumber>;
        keepers(overrides?: CallOverrides): Promise<BigNumber>;
        pendingBonds(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        pendingUnbonds(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        workCompleted(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        bonds(_keeper: PromiseOrValue<string>, _bond: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        canActivateAfter(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        canWithdrawAfter(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        disputes(_keeperOrJob: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        firstSeen(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        hasBonded(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        jobTokenCredits(_job: PromiseOrValue<string>, _token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        jobs(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        keepers(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingBonds(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pendingUnbonds(_keeper: PromiseOrValue<string>, _bonding: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        workCompleted(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
//# sourceMappingURL=IKeep3rAccountance.d.ts.map