import { HubPool, HubPool__factory, HubPoolInterface } from "../typechain";
import type { SignerOrProvider, GetEventType, SerializableEvent } from "@uma/sdk";
import * as uma from "@uma/sdk";
export declare type Instance = HubPool;
export declare const Factory: typeof HubPool__factory;
export declare type Interface = HubPoolInterface;
export declare function connect(address: string, provider: SignerOrProvider): Instance;
export declare type LiquidityAdded = GetEventType<Instance, "LiquidityAdded">;
export declare type LiquidityRemoved = GetEventType<Instance, "LiquidityRemoved">;
export declare type L1TokenEnabledForLiquidityProvision = GetEventType<Instance, "L1TokenEnabledForLiquidityProvision">;
export declare type L2TokenDisabledForLiquidityProvision = GetEventType<Instance, "L2TokenDisabledForLiquidityProvision">;
export declare type TokenEventState = {
    tokenBalances: uma.utils.Balances;
    lpTokenBalances: uma.utils.Balances;
    l1Token?: string;
    lpToken?: string;
    enabled?: boolean;
};
export declare type EventState = Record<string, TokenEventState>;
export declare function eventStateDefaults(): EventState;
export declare function reduceEvents(state: EventState, event: SerializableEvent): EventState;
export declare function getEventState(events: SerializableEvent[], eventState?: EventState): EventState;
