import * as ts from "typescript";
import * as tstl from "..";
import { LuaLibModulesInfo } from "../LuaLib";
import { EmitHost, ProcessedFile } from "../transpilation/utils";
export declare const lualibDiagnostic: ((message: string, file?: ts.SourceFile | undefined) => ts.Diagnostic) & {
    code: number;
};
declare class LuaLibPlugin implements tstl.Plugin {
    visitors: {
        307: (file: ts.SourceFile, context: tstl.TransformationContext) => tstl.File;
    };
    printer: tstl.Printer;
    afterPrint(program: ts.Program, options: tstl.CompilerOptions, emitHost: EmitHost, result: ProcessedFile[]): ts.Diagnostic[];
    protected featureExports: Map<tstl.LuaLibFeature, Set<string>>;
    protected featureDependencies: Map<tstl.LuaLibFeature, Set<tstl.LuaLibFeature>>;
    protected lualibFileVisitor(file: ts.SourceFile, context: tstl.TransformationContext): tstl.File;
    protected createLuaLibModulesInfo(): {
        result: LuaLibModulesInfo;
        diagnostics: ts.Diagnostic[];
    };
}
declare const pluginInstance: LuaLibPlugin;
export default pluginInstance;
