import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, 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 IKeep3rJobWorkableInterface extends utils.Interface {
    functions: {
        "bondedPayment(address,uint256)": FunctionFragment;
        "directTokenPayment(address,address,uint256)": FunctionFragment;
        "isBondedKeeper(address,address,uint256,uint256,uint256)": FunctionFragment;
        "isKeeper(address)": FunctionFragment;
        "worked(address)": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "bondedPayment" | "directTokenPayment" | "isBondedKeeper" | "isKeeper" | "worked"): FunctionFragment;
    encodeFunctionData(functionFragment: "bondedPayment", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "directTokenPayment", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "isBondedKeeper", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "isKeeper", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "worked", values: [PromiseOrValue<string>]): string;
    decodeFunctionResult(functionFragment: "bondedPayment", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "directTokenPayment", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isBondedKeeper", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isKeeper", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "worked", data: BytesLike): Result;
    events: {
        "KeeperValidation(uint256)": EventFragment;
        "KeeperWork(address,address,address,uint256,uint256)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "KeeperValidation"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "KeeperWork"): EventFragment;
}
export interface KeeperValidationEventObject {
    _gasLeft: BigNumber;
}
export declare type KeeperValidationEvent = TypedEvent<[
    BigNumber
], KeeperValidationEventObject>;
export declare type KeeperValidationEventFilter = TypedEventFilter<KeeperValidationEvent>;
export interface KeeperWorkEventObject {
    _credit: string;
    _job: string;
    _keeper: string;
    _amount: BigNumber;
    _gasLeft: BigNumber;
}
export declare type KeeperWorkEvent = TypedEvent<[
    string,
    string,
    string,
    BigNumber,
    BigNumber
], KeeperWorkEventObject>;
export declare type KeeperWorkEventFilter = TypedEventFilter<KeeperWorkEvent>;
export interface IKeep3rJobWorkable extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: IKeep3rJobWorkableInterface;
    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: {
        bondedPayment(_keeper: PromiseOrValue<string>, _payment: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        directTokenPayment(_token: PromiseOrValue<string>, _keeper: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isBondedKeeper(_keeper: PromiseOrValue<string>, _bond: PromiseOrValue<string>, _minBond: PromiseOrValue<BigNumberish>, _earned: PromiseOrValue<BigNumberish>, _age: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        isKeeper(_keeper: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        worked(_keeper: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    bondedPayment(_keeper: PromiseOrValue<string>, _payment: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    directTokenPayment(_token: PromiseOrValue<string>, _keeper: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isBondedKeeper(_keeper: PromiseOrValue<string>, _bond: PromiseOrValue<string>, _minBond: PromiseOrValue<BigNumberish>, _earned: PromiseOrValue<BigNumberish>, _age: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    isKeeper(_keeper: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    worked(_keeper: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        bondedPayment(_keeper: PromiseOrValue<string>, _payment: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        directTokenPayment(_token: PromiseOrValue<string>, _keeper: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        isBondedKeeper(_keeper: PromiseOrValue<string>, _bond: PromiseOrValue<string>, _minBond: PromiseOrValue<BigNumberish>, _earned: PromiseOrValue<BigNumberish>, _age: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        isKeeper(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        worked(_keeper: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        "KeeperValidation(uint256)"(_gasLeft?: null): KeeperValidationEventFilter;
        KeeperValidation(_gasLeft?: null): KeeperValidationEventFilter;
        "KeeperWork(address,address,address,uint256,uint256)"(_credit?: PromiseOrValue<string> | null, _job?: PromiseOrValue<string> | null, _keeper?: PromiseOrValue<string> | null, _amount?: null, _gasLeft?: null): KeeperWorkEventFilter;
        KeeperWork(_credit?: PromiseOrValue<string> | null, _job?: PromiseOrValue<string> | null, _keeper?: PromiseOrValue<string> | null, _amount?: null, _gasLeft?: null): KeeperWorkEventFilter;
    };
    estimateGas: {
        bondedPayment(_keeper: PromiseOrValue<string>, _payment: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        directTokenPayment(_token: PromiseOrValue<string>, _keeper: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isBondedKeeper(_keeper: PromiseOrValue<string>, _bond: PromiseOrValue<string>, _minBond: PromiseOrValue<BigNumberish>, _earned: PromiseOrValue<BigNumberish>, _age: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        isKeeper(_keeper: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        worked(_keeper: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        bondedPayment(_keeper: PromiseOrValue<string>, _payment: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        directTokenPayment(_token: PromiseOrValue<string>, _keeper: PromiseOrValue<string>, _amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isBondedKeeper(_keeper: PromiseOrValue<string>, _bond: PromiseOrValue<string>, _minBond: PromiseOrValue<BigNumberish>, _earned: PromiseOrValue<BigNumberish>, _age: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        isKeeper(_keeper: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        worked(_keeper: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
//# sourceMappingURL=IKeep3rJobWorkable.d.ts.map