export declare const NATURAL_VIEWPORT_SCALE = 1;
export declare const CACHE_ACTIVATION_SCALE = 0.01;
import { BasicWindow, Component } from "parsegraph-window";
import { Matrix3x3 } from 'parsegraph-matrix';
import Rect from 'parsegraph-rect';
import NodePainter from './NodePainter';
import Camera from 'parsegraph-camera';
import Freezer from './Freezer';
import { Direction } from 'parsegraph-direction';
import { LayoutNode } from 'parsegraph-layout';
declare class NodeRenderData {
    bounds: Rect;
    scaleMat: Matrix3x3;
    transMat: Matrix3x3;
    worldMat: Matrix3x3;
    constructor();
}
export default abstract class WindowNode extends LayoutNode {
    _windowPainter: {
        [key: string]: NodePainter;
    };
    _windowPaintGroup: {
        [key: string]: WindowNode;
    };
    _commitLayoutFunc: Function;
    _cache: any;
    _element: any;
    _windowElement: Map<Component, HTMLElement>;
    constructor(fromNode?: WindowNode, parentDirection?: Direction);
    element(): any;
    setElement(element: any): void;
    toString(): string;
    markDirty(): void;
    abstract newPainter(window: BasicWindow, paintContext: Component): NodePainter;
    painter(window: BasicWindow): NodePainter;
    freeze(freezer: Freezer): void;
    isFrozen(): boolean;
    thaw(): void;
    showNodeInCamera(cam: Camera): void;
    showInCamera(cam: Camera, onlyScaleIfNecessary: boolean): void;
    contextChanged(isLost: boolean, window: BasicWindow): void;
    elementFor(context: Component): HTMLElement;
    prepare(window: BasicWindow, paintContext: Component): void;
    paint(window: BasicWindow, timeout?: number, paintContext?: Component): boolean;
    renderIteratively(window: BasicWindow, camera: Camera, paintContext: Component): boolean;
    getHeaviestNode(window: BasicWindow): WindowNode;
    renderOffscreen(window: BasicWindow, renderWorld: Matrix3x3, renderScale: number, forceSimple: boolean, cam: Camera, paintContext: Component): boolean;
    render(window: BasicWindow, camera: Camera, renderData: NodeRenderData, paintContext: Component): boolean;
}
export {};
//# sourceMappingURL=WindowNode.d.ts.map