import { ContractFactory, ContractTransactionResponse } from "ethers";
import type { Signer, AddressLike, ContractDeployTransaction, ContractRunner } from "ethers";
import type { NonPayableOverrides } from "../../../common";
import type { InfraredRewards, InfraredRewardsInterface } from "../../../contracts/Infrared/InfraredRewards";
type InfraredRewardsConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
export declare class InfraredRewards__factory extends ContractFactory {
    constructor(...args: InfraredRewardsConstructorParams);
    getDeployTransaction(_infraredVault: AddressLike, overrides?: NonPayableOverrides & {
        from?: string;
    }): Promise<ContractDeployTransaction>;
    deploy(_infraredVault: AddressLike, overrides?: NonPayableOverrides & {
        from?: string;
    }): Promise<InfraredRewards & {
        deploymentTransaction(): ContractTransactionResponse;
    }>;
    connect(runner: ContractRunner | null): InfraredRewards__factory;
    static readonly bytecode = "0x60a034606e57601f6105e638819003918201601f19168301916001600160401b03831184841017607357808492602094604052833981010312606e57516001600160a01b03811690819003606e5760805260405161055c908161008a823960805181818160e501526103280152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c8063211dc32d146101d357806321e5e2c4146101555780633a98ef39146101375780635c975abb146101145780636ab3b0e5146100cf578063817b1cd2146100b15763b34c8caf1461006957600080fd5b346100ac5760203660031901126100ac576001600160a01b0361008a61020c565b1660005260656020526040806000206001815491015482519182526020820152f35b600080fd5b346100ac5760003660031901126100ac576020606654604051908152f35b346100ac5760003660031901126100ac576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100ac5760003660031901126100ac57602060ff603354166040519015158152f35b346100ac5760003660031901126100ac576020606754604051908152f35b346100ac5760203660031901126100ac576001600160a01b0361017661020c565b166000526065602052604060002054670de0b6b3a7640000810290808204670de0b6b3a764000014901517156101bd576101b560209160675490610279565b604051908152f35b634e487b7160e01b600052601160045260246000fd5b346100ac5760403660031901126100ac576101ec61020c565b602435906001600160a01b03821682036100ac576020916101b591610299565b600435906001600160a01b03821682036100ac57565b919082039182116101bd57565b818102929181159184041417156101bd57565b919082018092116101bd57565b80518210156102635760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b8115610283570490565b634e487b7160e01b600052601260045260246000fd5b6102ec9060018060a01b03168060005260656020526102e66102c360016040600020015442610222565b82600052606560205260406000205492600052606960205260406000205461022f565b90610242565b61030a6102fb60685442610222565b6102e66067549160665461022f565b60405163150b82a360e11b81523060048201529091906000816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104e2576000916103ca575b5060005b81518110156103c0576001600160a01b03610380828461024f565b5151166001600160a01b0386161461039a57600101610365565b6103bd94506103af6020916103b8949361024f565b5101519061022f565b610279565b90565b5050505050600090565b903d8082843e6103da81846104ee565b8201916020818403126104de5780519067ffffffffffffffff82116104c6570182601f820112156104de5780519167ffffffffffffffff83116104ca576040519361042b60208560051b01866104ee565b83855260208086019460061b840101928184116104c657602001935b83851061045957505050505038610361565b6040858303126104c6576040516040810181811067ffffffffffffffff8211176104b25760405285516001600160a01b03811681036104ae579181604093602093528288015183820152815201940193610447565b8480fd5b634e487b7160e01b85526041600452602485fd5b8280fd5b634e487b7160e01b81526041600452602490fd5b5080fd5b6040513d6000823e3d90fd5b90601f8019910116810190811067ffffffffffffffff82111761051057604052565b634e487b7160e01b600052604160045260246000fdfea26469706673582212200f371aba85a8804c62a5bdb692de7e6bebd26a22d3d88c7132a27ff8147f775664736f6c634300081a0033";
    static readonly abi: readonly [{
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "_infraredVault";
            readonly type: "address";
        }];
        readonly stateMutability: "nonpayable";
        readonly type: "constructor";
    }, {
        readonly inputs: readonly [];
        readonly name: "CantWithdrawRewardToken";
        readonly type: "error";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: false;
            readonly internalType: "uint8";
            readonly name: "version";
            readonly type: "uint8";
        }];
        readonly name: "Initialized";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "account";
            readonly type: "address";
        }];
        readonly name: "Paused";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "token";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "amount";
            readonly type: "uint256";
        }];
        readonly name: "Recovered";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "user";
            readonly type: "address";
        }, {
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "rewardsToken";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "reward";
            readonly type: "uint256";
        }];
        readonly name: "RewardPaid";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "user";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "amount";
            readonly type: "uint256";
        }];
        readonly name: "Staked";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: false;
            readonly internalType: "address";
            readonly name: "account";
            readonly type: "address";
        }];
        readonly name: "Unpaused";
        readonly type: "event";
    }, {
        readonly anonymous: false;
        readonly inputs: readonly [{
            readonly indexed: true;
            readonly internalType: "address";
            readonly name: "user";
            readonly type: "address";
        }, {
            readonly indexed: false;
            readonly internalType: "uint256";
            readonly name: "amount";
            readonly type: "uint256";
        }];
        readonly name: "Withdrawn";
        readonly type: "event";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "";
            readonly type: "address";
        }];
        readonly name: "_shares";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "shares";
            readonly type: "uint256";
        }, {
            readonly internalType: "uint256";
            readonly name: "lastUpdateTime";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "account";
            readonly type: "address";
        }, {
            readonly internalType: "address";
            readonly name: "_rewardsToken";
            readonly type: "address";
        }];
        readonly name: "earned";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "infraredVault";
        readonly outputs: readonly [{
            readonly internalType: "contract IInfraredVault";
            readonly name: "";
            readonly type: "address";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "paused";
        readonly outputs: readonly [{
            readonly internalType: "bool";
            readonly name: "";
            readonly type: "bool";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [{
            readonly internalType: "address";
            readonly name: "account";
            readonly type: "address";
        }];
        readonly name: "shareOf";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "_share";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "totalShares";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }, {
        readonly inputs: readonly [];
        readonly name: "totalStaked";
        readonly outputs: readonly [{
            readonly internalType: "uint256";
            readonly name: "";
            readonly type: "uint256";
        }];
        readonly stateMutability: "view";
        readonly type: "function";
    }];
    static createInterface(): InfraredRewardsInterface;
    static connect(address: string, runner?: ContractRunner | null): InfraredRewards;
}
export {};
