import Output from '../output/output.js'; import { Instrument } from './instrument.js'; interface IMethodTree { [K: string]: Function | string | IMethodTree | any; } declare class SubModule { private root; constructor(root: any); addMethod(name: string, cbName: string | Function): void; addModule(name: string): SubModule; } export declare abstract class AppModule { [K: string]: any; private rootModule; methods: IMethodTree; private lifecycle; private symbols; protected output: Output; static readonly id: string; static transformLegacy(app: any): void; constructor(output: Output); getSymbols(): string[]; addMethod(name: string, cbName: Function | string): void; addModule(name: string): SubModule; instrumentize(fullPath: string, method: string): Instrument; addLifecycleStep(name: string, cbName: string): void; executeLifecycleStep(name: string): void; } export default AppModule;