import { ERC20Ethers } from "@uma/contracts-node";
import { Event } from "ethers";
import { Balances } from "../../utils";
import type { Provider, GetEventType } from "../..";
export type Instance = ERC20Ethers;
export declare function connect(address: string, provider: Provider): Instance;
export interface EventState {
    balances?: Balances;
    approvalsByOwner?: {
        [owner: string]: {
            [spender: string]: {
                amount: string;
            };
        };
    };
    approvalsBySpender?: {
        [spender: string]: {
            [owner: string]: {
                amount: string;
            };
        };
    };
}
export type Transfer = GetEventType<Instance, "Transfer">;
export type Approval = GetEventType<Instance, "Approval">;
export declare function getEventState(events: Event[], initialState?: EventState): EventState;
