import Camera from "parsegraph-camera";
import { Carousel } from "../carousel";
import InputController from "./InputController";
import BurgerMenu from "./BurgerMenu";
import CameraFilter from "./CameraFilter";
import { Projected, Projector } from "parsegraph-projector";
import { PaintedNode } from "parsegraph-artist";
import Method from "parsegraph-method";
import Color from "parsegraph-color";
import { GraphPainter } from "parsegraph-graphpainter";
import NavportWebOverlay from "./NavportWebOverlay";
export declare const FOCUS_SCALE = 2;
export declare const MIN_CAMERA_SCALE = 0.00125;
export interface ViewportDisplayMode {
    render(projector: Projector, nav: Navport): boolean;
    allowSplit(projector: Projector, nav: Navport): boolean;
    showMenu(projector: Projector, nav: Navport): boolean;
}
export default class Navport implements Projected {
    _root: PaintedNode;
    _painter: GraphPainter;
    _camera: Camera;
    _cameraFilter: CameraFilter;
    _carousel: Carousel;
    _webOverlay: NavportWebOverlay;
    _input: InputController;
    _menu: BurgerMenu;
    _renderedMouse: number;
    _needsRender: boolean;
    _focusScale: number;
    _backgroundColor: Color;
    _needsRepaint: boolean;
    _displayMode: ViewportDisplayMode;
    _update: Method;
    _cursor: string;
    _inputLayer: Map<Projector, Projector>;
    _unmount: () => void;
    constructor(displayMode?: ViewportDisplayMode, root?: PaintedNode, backgroundColor?: Color);
    lastMouseX(): number;
    lastMouseY(): number;
    setCursor(cur: string): void;
    scheduleUpdate(): void;
    setOnScheduleUpdate(func: Function, obj?: object): void;
    width(): number;
    height(): number;
    setDisplayMode(displayMode: ViewportDisplayMode): void;
    displayMode(): ViewportDisplayMode;
    tick(startDate: number): boolean;
    unmount(proj: Projector): void;
    carousel(): Carousel;
    menu(): BurgerMenu;
    camera(): Camera;
    input(): InputController;
    dispose(): void;
    scheduleRepaint(): void;
    scheduleRender(): void;
    needsRepaint(): boolean;
    needsRender(): boolean;
    root(): PaintedNode;
    web(): NavportWebOverlay;
    setRoot(root: PaintedNode): void;
    plot(node: PaintedNode): void;
    paint(projector: Projector, timeout?: number): boolean;
    mouseVersion(): number;
    focusedNode(): PaintedNode;
    showInCamera(node: PaintedNode): void;
    backgroundColor(): Color;
    setBackgroundColor(color: Color): void;
    setFocusScale(scale: number): void;
    getFocusScale(): number;
    getRequiredScale(): number;
    cameraFilter(): CameraFilter;
    private renderBackground;
    render(projector: Projector): boolean;
}
//# sourceMappingURL=Navport.d.ts.map