import ts from 'typescript';
import { AnalysisService } from './analysis';
import { Builtins } from './compile/builtins';
import { DiagnosticCode } from './DiagnosticCode';
import { DiagnosticMessage } from './DiagnosticMessage';
import { CompilerHost } from './types';
export declare class Context {
    readonly sourceFiles: Set<ts.SourceFile>;
    readonly program: ts.Program;
    readonly typeChecker: ts.TypeChecker;
    readonly languageService: ts.LanguageService;
    readonly host: CompilerHost;
    private readonly mutableDiagnostics;
    readonly builtins: Builtins;
    readonly analysis: AnalysisService;
    constructor(sourceFiles: Set<ts.SourceFile>, program: ts.Program, typeChecker: ts.TypeChecker, languageService: ts.LanguageService, host: CompilerHost, mutableDiagnostics?: ts.Diagnostic[]);
    readonly diagnostics: ReadonlyArray<ts.Diagnostic>;
    update(sourceFiles: Set<ts.SourceFile>, program: ts.Program, typeChecker: ts.TypeChecker, languageService: ts.LanguageService): Context;
    reportError(node: ts.Node, code: DiagnosticCode, message: DiagnosticMessage, ...args: any[]): void;
    reportWarning(node: ts.Node, code: DiagnosticCode, message: DiagnosticMessage, ...args: any[]): void;
    reportUnsupported(node: ts.Node): void;
    reportUnsupportedEfficiency(node: ts.Node): void;
    reportTypeError(node: ts.Node): void;
    reportTypeWarning(node: ts.Node): void;
    private getDiagnosticMessage;
    private isDeclarationFile;
}
