import { Program, File } from "@babel/types";
import { ExportClassCode } from "./export-class";
import { MethodCode } from "./method";
import { LocalContext } from "./local-context";
import { NodePath, TraverseOptions } from "@babel/traverse";
import { InlineContext } from "./inline-context";
export declare class ModuleCode {
    m_File: File;
    m_Path: NodePath<Program>;
    constructor(code: string);
    ToDraft(): Draft;
    Traverse<S>(this: ModuleCode, visitor: TraverseOptions<S>, state?: S): void;
}
export declare type Draft = Array<ExportClassCode | MethodCode | LocalContext | InlineContext>;
export declare function IsExportClassCode(path: NodePath<any>): boolean;
export declare function IsMethodCode(path: NodePath<any>): boolean;
export declare function IsLocalContext(path: NodePath<any>): boolean;
