import { ArktsObject } from './ArktsObject';
import { Program } from '../../../generated';
import { KNativePointer, KBoolean } from '@koalaui/interop';
import { Config } from './Config';
import { AstNode } from './AstNode';
export declare class Context extends ArktsObject {
    constructor(peer: KNativePointer);
    static createFromString(source: string): Context;
    static createCacheContextFromFile(configPtr: KNativePointer, fileName: string, globalContextPtr: KNativePointer, isExternal: KBoolean): Context;
    static createFromFile(filePath: string): Context;
    static createCacheFromFile(filePath: string, config: Config, globalContext: GlobalContext, isExternal: boolean): Context;
    static createContextGenerateAbcForExternalSourceFiles(filenames: string[]): Context;
    static createFromStringWithHistory(source: string): Context;
    destroy(): void;
    /** @deprecated */
    static destroyAndRecreate(ast: AstNode): Context;
    get program(): Program;
}
export declare class GlobalContext extends ArktsObject {
    constructor(peer: KNativePointer);
    static create(config: Config, externalFileList: string[]): GlobalContext;
    destroy(): void;
}
