import { EventProvider } from '../Event';
import { Sandbox } from '../Sandbox';
import { DefineApplet, Slide, Modality, AppletControls, AppletEvents, AppletAllConfig, AppletResources, AppletManifest, AppletAttachBehavior, Application, Applet } from '../types';
declare class AppletBase extends EventProvider {
    id: string;
    param: string;
    application: Application;
    viewport?: HTMLElement;
    mountBehavior?: AppletAttachBehavior;
    controls?: AppletControls;
    contentView?: DefineApplet;
    contentSlot?: HTMLSlotElement;
    parentApplet?: Applet;
    sandbox: Sandbox | undefined;
    slide: Slide | null;
    modality: Modality | null;
    view: HTMLElement | HTMLPortalElement | HTMLIFrameElement | null;
    img: HTMLElement | null;
    snapshot: HTMLCanvasElement | null;
    snapshotTime: number;
    visitTime: number;
    model: AppletManifest;
    events: AppletEvents;
    darkTask: Array<() => void>;
    createTime: number;
    transient: boolean;
    config: AppletAllConfig;
    components: ((w: Window) => void)[];
    resources: AppletResources;
    get self(): Applet;
    constructor(id: string, model: AppletManifest, application: Application);
    setDefaultConfig: (manifest: AppletManifest, id: string) => AppletManifest;
}
export { AppletBase };
