import { ControllerContracts } from '.'; import { Call } from '..'; import { ethers } from 'ethers'; import { types } from '@abacus-network/utils'; import { AbacusApp } from '../app'; import { MultiProvider } from '../provider'; import { ChainMap, ChainName } from '../types'; import { ControllerAddresses } from './contracts'; import { environments } from './environments'; declare type Environments = typeof environments; declare type EnvironmentName = keyof Environments; export declare type Controller = { domain: number; identifier: string; }; export declare class ControllerApp extends AbacusApp { constructor(addresses: ChainMap, multiProvider: MultiProvider); static fromEnvironment(name: EnvironmentName, multiProvider: MultiProvider): ControllerApp; pushCall(chain: Chain, call: Call): void; getCalls(chain: Chain): Call[]; chainCalls: () => ChainMap; routers: () => Record; routerAddresses: () => Record; controller: () => Promise<{ chain: Chain; address: types.Address; }>; build: () => Promise; execute: (signer: ethers.Signer) => Promise; estimateGas: (provider: ethers.providers.Provider) => Promise; } export {}; //# sourceMappingURL=app.d.ts.map