import { ABCFile } from '../abc/lazy/ABCFile';
import { ScriptInfo } from '../abc/lazy/ScriptInfo';
import { Multiname } from '../abc/lazy/Multiname';
import { AXSecurityDomain } from './AXSecurityDomain';
import { AXGlobal } from './AXGlobal';
import { AXClass } from './AXClass';
import { AXObject } from './AXObject';
import { ClassInfo } from '../abc/lazy/ClassInfo';
import { IGlobalInfo } from '../abc/lazy/IGlobalInfo';
/**
 * All code lives within an application domain.
 */
export declare class AXApplicationDomain {
    /**
     * All application domains have a reference to the root, or system application domain.
     */
    system: AXApplicationDomain;
    /**
     * Parent application domain.
     */
    parent: AXApplicationDomain;
    sec: AXSecurityDomain;
    awayApplicationDomain: any;
    private _abcs;
    private _binarySymbols;
    constructor(sec: AXSecurityDomain, parent: AXApplicationDomain);
    addBinarySymbol(symbol: any): void;
    getBinarySymbol(className: string): any;
    loadABC(abc: ABCFile): void;
    loadAndExecuteABC(abc: ABCFile): void;
    executeABC(abc: ABCFile): void;
    findClassInfoDeep(name: string | Multiname): ClassInfo | null;
    findClassInfo(name: string | Multiname): ClassInfo | null;
    executeScript(scriptInfo: ScriptInfo): void;
    findProperty(mn: Multiname, _strict: boolean, execute: boolean): AXGlobal;
    getClass(mn: Multiname): AXClass;
    getProperty(mn: Multiname, strict: boolean, execute: boolean): AXObject;
    findDefiningGlobal(mn: Multiname, execute: boolean): IGlobalInfo;
}
//# sourceMappingURL=AXApplicationDomain.d.ts.map