import { Interface } from '@ethersproject/abi'; import { DeepReadonly } from 'ts-essentials'; import { IDexHelper } from '../../dex-helper/idex-helper'; import { StatefulEventSubscriber } from '../../stateful-event-subscriber'; import { Address, Log, Logger } from '../../types'; import { LogDescription } from 'ethers/lib/utils'; import { FactoryState } from './types'; export type OnPoolCreatedCallback = ({ token0, token1, }: { token0: string; token1: string; }) => Promise; export declare class AlgebraFactory extends StatefulEventSubscriber { readonly dexHelper: IDexHelper; protected readonly factoryAddress: Address; protected readonly onPoolCreated: OnPoolCreatedCallback; handlers: { [event: string]: (event: any) => Promise; }; logDecoder: (log: Log) => any; readonly factoryIface: Interface; constructor(dexHelper: IDexHelper, parentName: string, factoryAddress: Address, logger: Logger, onPoolCreated: OnPoolCreatedCallback, mapKey?: string); generateState(): FactoryState; protected processLog(_: DeepReadonly, log: Readonly): Promise; handleNewPool(event: LogDescription): Promise; }