import type { BaseContract, BigNumber, 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 } from "../common";
export interface FactoryHelperTestInterface extends utils.Interface {
    functions: {
        "IS_TEST()": FunctionFragment;
        "beamMainnetFork()": FunctionFragment;
        "failed()": FunctionFragment;
        "setUp()": FunctionFragment;
        "test_factoryHelper()": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "IS_TEST" | "beamMainnetFork" | "failed" | "setUp" | "test_factoryHelper"): FunctionFragment;
    encodeFunctionData(functionFragment: "IS_TEST", values?: undefined): string;
    encodeFunctionData(functionFragment: "beamMainnetFork", values?: undefined): string;
    encodeFunctionData(functionFragment: "failed", values?: undefined): string;
    encodeFunctionData(functionFragment: "setUp", values?: undefined): string;
    encodeFunctionData(functionFragment: "test_factoryHelper", values?: undefined): string;
    decodeFunctionResult(functionFragment: "IS_TEST", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "beamMainnetFork", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "failed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setUp", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "test_factoryHelper", data: BytesLike): Result;
    events: {
        "Log(string)": EventFragment;
        "LogAddress(address)": EventFragment;
        "LogArray(address[])": EventFragment;
        "LogArray(bool[])": EventFragment;
        "LogArray(bytes32[])": EventFragment;
        "LogArray(int256[])": EventFragment;
        "LogArray(string[])": EventFragment;
        "LogArray(uint256[])": EventFragment;
        "LogBytes(bytes)": EventFragment;
        "LogBytes32(bytes32)": EventFragment;
        "LogInt256(int256)": EventFragment;
        "LogNamedAddress(string,address)": EventFragment;
        "LogNamedArray(string,address[])": EventFragment;
        "LogNamedArray(string,bool[])": EventFragment;
        "LogNamedArray(string,bytes32[])": EventFragment;
        "LogNamedArray(string,int256[])": EventFragment;
        "LogNamedArray(string,string[])": EventFragment;
        "LogNamedArray(string,uint256[])": EventFragment;
        "LogNamedBytes(string,bytes)": EventFragment;
        "LogNamedBytes32(string,bytes32)": EventFragment;
        "LogNamedInt256(string,int256)": EventFragment;
        "LogNamedString(string,string)": EventFragment;
        "LogNamedUint256(string,uint256)": EventFragment;
        "LogString(string)": EventFragment;
        "LogUint256(uint256)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "Log"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogAddress"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogArray(address[])"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogArray(bool[])"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogArray(bytes32[])"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogArray(int256[])"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogArray(string[])"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogArray(uint256[])"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogBytes"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogBytes32"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogInt256"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogNamedAddress"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogNamedArray(string,address[])"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogNamedArray(string,bool[])"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogNamedArray(string,bytes32[])"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogNamedArray(string,int256[])"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogNamedArray(string,string[])"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogNamedArray(string,uint256[])"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogNamedBytes"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogNamedBytes32"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogNamedInt256"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogNamedString"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogNamedUint256"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogString"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LogUint256"): EventFragment;
}
export interface LogEventObject {
    err: string;
}
export type LogEvent = TypedEvent<[string], LogEventObject>;
export type LogEventFilter = TypedEventFilter<LogEvent>;
export interface LogAddressEventObject {
    value: string;
}
export type LogAddressEvent = TypedEvent<[string], LogAddressEventObject>;
export type LogAddressEventFilter = TypedEventFilter<LogAddressEvent>;
export interface LogArray_address_array_EventObject {
    value: string[];
}
export type LogArray_address_array_Event = TypedEvent<[
    string[]
], LogArray_address_array_EventObject>;
export type LogArray_address_array_EventFilter = TypedEventFilter<LogArray_address_array_Event>;
export interface LogArray_bool_array_EventObject {
    value: boolean[];
}
export type LogArray_bool_array_Event = TypedEvent<[
    boolean[]
], LogArray_bool_array_EventObject>;
export type LogArray_bool_array_EventFilter = TypedEventFilter<LogArray_bool_array_Event>;
export interface LogArray_bytes32_array_EventObject {
    value: string[];
}
export type LogArray_bytes32_array_Event = TypedEvent<[
    string[]
], LogArray_bytes32_array_EventObject>;
export type LogArray_bytes32_array_EventFilter = TypedEventFilter<LogArray_bytes32_array_Event>;
export interface LogArray_int256_array_EventObject {
    value: BigNumber[];
}
export type LogArray_int256_array_Event = TypedEvent<[
    BigNumber[]
], LogArray_int256_array_EventObject>;
export type LogArray_int256_array_EventFilter = TypedEventFilter<LogArray_int256_array_Event>;
export interface LogArray_string_array_EventObject {
    value: string[];
}
export type LogArray_string_array_Event = TypedEvent<[
    string[]
], LogArray_string_array_EventObject>;
export type LogArray_string_array_EventFilter = TypedEventFilter<LogArray_string_array_Event>;
export interface LogArray_uint256_array_EventObject {
    value: BigNumber[];
}
export type LogArray_uint256_array_Event = TypedEvent<[
    BigNumber[]
], LogArray_uint256_array_EventObject>;
export type LogArray_uint256_array_EventFilter = TypedEventFilter<LogArray_uint256_array_Event>;
export interface LogBytesEventObject {
    value: string;
}
export type LogBytesEvent = TypedEvent<[string], LogBytesEventObject>;
export type LogBytesEventFilter = TypedEventFilter<LogBytesEvent>;
export interface LogBytes32EventObject {
    value: string;
}
export type LogBytes32Event = TypedEvent<[string], LogBytes32EventObject>;
export type LogBytes32EventFilter = TypedEventFilter<LogBytes32Event>;
export interface LogInt256EventObject {
    value: BigNumber;
}
export type LogInt256Event = TypedEvent<[BigNumber], LogInt256EventObject>;
export type LogInt256EventFilter = TypedEventFilter<LogInt256Event>;
export interface LogNamedAddressEventObject {
    key: string;
    value: string;
}
export type LogNamedAddressEvent = TypedEvent<[
    string,
    string
], LogNamedAddressEventObject>;
export type LogNamedAddressEventFilter = TypedEventFilter<LogNamedAddressEvent>;
export interface LogNamedArray_string_address_array_EventObject {
    key: string;
    value: string[];
}
export type LogNamedArray_string_address_array_Event = TypedEvent<[
    string,
    string[]
], LogNamedArray_string_address_array_EventObject>;
export type LogNamedArray_string_address_array_EventFilter = TypedEventFilter<LogNamedArray_string_address_array_Event>;
export interface LogNamedArray_string_bool_array_EventObject {
    key: string;
    value: boolean[];
}
export type LogNamedArray_string_bool_array_Event = TypedEvent<[
    string,
    boolean[]
], LogNamedArray_string_bool_array_EventObject>;
export type LogNamedArray_string_bool_array_EventFilter = TypedEventFilter<LogNamedArray_string_bool_array_Event>;
export interface LogNamedArray_string_bytes32_array_EventObject {
    key: string;
    value: string[];
}
export type LogNamedArray_string_bytes32_array_Event = TypedEvent<[
    string,
    string[]
], LogNamedArray_string_bytes32_array_EventObject>;
export type LogNamedArray_string_bytes32_array_EventFilter = TypedEventFilter<LogNamedArray_string_bytes32_array_Event>;
export interface LogNamedArray_string_int256_array_EventObject {
    key: string;
    value: BigNumber[];
}
export type LogNamedArray_string_int256_array_Event = TypedEvent<[
    string,
    BigNumber[]
], LogNamedArray_string_int256_array_EventObject>;
export type LogNamedArray_string_int256_array_EventFilter = TypedEventFilter<LogNamedArray_string_int256_array_Event>;
export interface LogNamedArray_string_string_array_EventObject {
    key: string;
    value: string[];
}
export type LogNamedArray_string_string_array_Event = TypedEvent<[
    string,
    string[]
], LogNamedArray_string_string_array_EventObject>;
export type LogNamedArray_string_string_array_EventFilter = TypedEventFilter<LogNamedArray_string_string_array_Event>;
export interface LogNamedArray_string_uint256_array_EventObject {
    key: string;
    value: BigNumber[];
}
export type LogNamedArray_string_uint256_array_Event = TypedEvent<[
    string,
    BigNumber[]
], LogNamedArray_string_uint256_array_EventObject>;
export type LogNamedArray_string_uint256_array_EventFilter = TypedEventFilter<LogNamedArray_string_uint256_array_Event>;
export interface LogNamedBytesEventObject {
    key: string;
    value: string;
}
export type LogNamedBytesEvent = TypedEvent<[
    string,
    string
], LogNamedBytesEventObject>;
export type LogNamedBytesEventFilter = TypedEventFilter<LogNamedBytesEvent>;
export interface LogNamedBytes32EventObject {
    key: string;
    value: string;
}
export type LogNamedBytes32Event = TypedEvent<[
    string,
    string
], LogNamedBytes32EventObject>;
export type LogNamedBytes32EventFilter = TypedEventFilter<LogNamedBytes32Event>;
export interface LogNamedInt256EventObject {
    key: string;
    value: BigNumber;
}
export type LogNamedInt256Event = TypedEvent<[
    string,
    BigNumber
], LogNamedInt256EventObject>;
export type LogNamedInt256EventFilter = TypedEventFilter<LogNamedInt256Event>;
export interface LogNamedStringEventObject {
    key: string;
    value: string;
}
export type LogNamedStringEvent = TypedEvent<[
    string,
    string
], LogNamedStringEventObject>;
export type LogNamedStringEventFilter = TypedEventFilter<LogNamedStringEvent>;
export interface LogNamedUint256EventObject {
    key: string;
    value: BigNumber;
}
export type LogNamedUint256Event = TypedEvent<[
    string,
    BigNumber
], LogNamedUint256EventObject>;
export type LogNamedUint256EventFilter = TypedEventFilter<LogNamedUint256Event>;
export interface LogStringEventObject {
    value: string;
}
export type LogStringEvent = TypedEvent<[string], LogStringEventObject>;
export type LogStringEventFilter = TypedEventFilter<LogStringEvent>;
export interface LogUint256EventObject {
    value: BigNumber;
}
export type LogUint256Event = TypedEvent<[BigNumber], LogUint256EventObject>;
export type LogUint256EventFilter = TypedEventFilter<LogUint256Event>;
export interface FactoryHelperTest extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: FactoryHelperTestInterface;
    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: {
        IS_TEST(overrides?: CallOverrides): Promise<[boolean]>;
        beamMainnetFork(overrides?: CallOverrides): Promise<[BigNumber]>;
        failed(overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        setUp(overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        test_factoryHelper(overrides?: CallOverrides): Promise<[void]>;
    };
    IS_TEST(overrides?: CallOverrides): Promise<boolean>;
    beamMainnetFork(overrides?: CallOverrides): Promise<BigNumber>;
    failed(overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    setUp(overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    test_factoryHelper(overrides?: CallOverrides): Promise<void>;
    callStatic: {
        IS_TEST(overrides?: CallOverrides): Promise<boolean>;
        beamMainnetFork(overrides?: CallOverrides): Promise<BigNumber>;
        failed(overrides?: CallOverrides): Promise<boolean>;
        setUp(overrides?: CallOverrides): Promise<void>;
        test_factoryHelper(overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        "Log(string)"(err?: null): LogEventFilter;
        Log(err?: null): LogEventFilter;
        "LogAddress(address)"(value?: null): LogAddressEventFilter;
        LogAddress(value?: null): LogAddressEventFilter;
        "LogArray(address[])"(value?: null): LogArray_address_array_EventFilter;
        "LogArray(bool[])"(value?: null): LogArray_bool_array_EventFilter;
        "LogArray(bytes32[])"(value?: null): LogArray_bytes32_array_EventFilter;
        "LogArray(int256[])"(value?: null): LogArray_int256_array_EventFilter;
        "LogArray(string[])"(value?: null): LogArray_string_array_EventFilter;
        "LogArray(uint256[])"(value?: null): LogArray_uint256_array_EventFilter;
        "LogBytes(bytes)"(value?: null): LogBytesEventFilter;
        LogBytes(value?: null): LogBytesEventFilter;
        "LogBytes32(bytes32)"(value?: null): LogBytes32EventFilter;
        LogBytes32(value?: null): LogBytes32EventFilter;
        "LogInt256(int256)"(value?: null): LogInt256EventFilter;
        LogInt256(value?: null): LogInt256EventFilter;
        "LogNamedAddress(string,address)"(key?: null, value?: null): LogNamedAddressEventFilter;
        LogNamedAddress(key?: null, value?: null): LogNamedAddressEventFilter;
        "LogNamedArray(string,address[])"(key?: null, value?: null): LogNamedArray_string_address_array_EventFilter;
        "LogNamedArray(string,bool[])"(key?: null, value?: null): LogNamedArray_string_bool_array_EventFilter;
        "LogNamedArray(string,bytes32[])"(key?: null, value?: null): LogNamedArray_string_bytes32_array_EventFilter;
        "LogNamedArray(string,int256[])"(key?: null, value?: null): LogNamedArray_string_int256_array_EventFilter;
        "LogNamedArray(string,string[])"(key?: null, value?: null): LogNamedArray_string_string_array_EventFilter;
        "LogNamedArray(string,uint256[])"(key?: null, value?: null): LogNamedArray_string_uint256_array_EventFilter;
        "LogNamedBytes(string,bytes)"(key?: null, value?: null): LogNamedBytesEventFilter;
        LogNamedBytes(key?: null, value?: null): LogNamedBytesEventFilter;
        "LogNamedBytes32(string,bytes32)"(key?: null, value?: null): LogNamedBytes32EventFilter;
        LogNamedBytes32(key?: null, value?: null): LogNamedBytes32EventFilter;
        "LogNamedInt256(string,int256)"(key?: null, value?: null): LogNamedInt256EventFilter;
        LogNamedInt256(key?: null, value?: null): LogNamedInt256EventFilter;
        "LogNamedString(string,string)"(key?: null, value?: null): LogNamedStringEventFilter;
        LogNamedString(key?: null, value?: null): LogNamedStringEventFilter;
        "LogNamedUint256(string,uint256)"(key?: null, value?: null): LogNamedUint256EventFilter;
        LogNamedUint256(key?: null, value?: null): LogNamedUint256EventFilter;
        "LogString(string)"(value?: null): LogStringEventFilter;
        LogString(value?: null): LogStringEventFilter;
        "LogUint256(uint256)"(value?: null): LogUint256EventFilter;
        LogUint256(value?: null): LogUint256EventFilter;
    };
    estimateGas: {
        IS_TEST(overrides?: CallOverrides): Promise<BigNumber>;
        beamMainnetFork(overrides?: CallOverrides): Promise<BigNumber>;
        failed(overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        setUp(overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        test_factoryHelper(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        IS_TEST(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        beamMainnetFork(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        failed(overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        setUp(overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        test_factoryHelper(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
