import Camera from 'parsegraph-camera';
import Carousel from './Carousel';
import Input from './Input';
import BurgerMenu from './BurgerMenu';
import CameraFilter from './CameraFilter';
import World from './World';
import EventNode from './EventNode';
import { BasicWindow, Component } from 'parsegraph-window';
export declare const FOCUS_SCALE = 1;
export default class Viewport extends Component {
    _world: World;
    _camera: Camera;
    _cameraFilter: CameraFilter;
    _carousel: Carousel;
    _input: Input;
    _menu: BurgerMenu;
    _renderedMouse: number;
    _needsRender: boolean;
    _focusScale: number;
    _nodeShown: EventNode;
    _needsRepaint: boolean;
    constructor(world: World);
    peer(): any;
    handleEvent(eventType: string, eventData: any): any;
    tick(startDate: number): boolean;
    mount(window: BasicWindow): void;
    unmount(): void;
    setCursor(cursor: string): void;
    serialize(): {
        componentType: string;
        camera: any;
    };
    component(): this;
    width(): number;
    x(): number;
    y(): number;
    height(): number;
    shaders(): {
        [shaderName: string]: WebGLProgram;
    };
    window(): BasicWindow;
    gl(): WebGLRenderingContext;
    contextChanged(isLost: boolean): void;
    world(): World;
    carousel(): Carousel;
    menu(): BurgerMenu;
    camera(): Camera;
    input(): Input;
    dispose(): void;
    scheduleRepaint(): void;
    scheduleRender(): void;
    needsRepaint(): boolean;
    needsRender(): boolean;
    plot(...args: any): any;
    paint(timeout?: number): boolean;
    mouseVersion(): number;
    showInCamera(node: EventNode): void;
    setFocusScale(scale: number): void;
    getFocusScale(): number;
    getRequiredScale(): number;
    cameraFilter(): CameraFilter;
    render(width: number, height: number, avoidIfPossible?: boolean): boolean;
}
//# sourceMappingURL=Viewport.d.ts.map