import { Contract, ethers, Event } from "ethers";
import type { TypedEventFilterEthers as TypedEventFilter, TypedEventEthers as TypedEvent } from "@uma/contracts-node";
export * as across from "./across";
export * as clients from "./clients";
export * as oracle from "./oracle";
export * as utils from "./utils";
export { type Provider } from "@ethersproject/providers";
type Result = ethers.utils.Result;
export interface Callable {
    (...args: unknown[]): unknown;
}
export type SerializableEvent = Omit<Event, "decode" | "removeListener" | "getBlock" | "getTransaction" | "getTransactionReceipt">;
export type GetEventType<ContractType extends Contract, EventName extends string> = ReturnType<ContractType["filters"][EventName] extends Callable ? ContractType["filters"][EventName] : never> extends TypedEventFilter<infer T, infer S> ? TypedEvent<T & S extends Result ? T & S : any> : never;
//# sourceMappingURL=index.d.ts.map