import * as THREE from "three";
import { WorkObserver } from "../work";
import { ImageOptions } from "../types/imageOptions";
export interface TilingFrameState {
    time: number;
    resolution: THREE.Vector2;
    pixelRatio: number;
    renderer: THREE.WebGLRenderer;
    cameraMatrix: THREE.Matrix4;
    cameraProjectionMatrix: THREE.Matrix4;
    panoMap: THREE.CubeTexture | null;
    panoMatrix: THREE.Matrix4;
    panoZoom: number;
    minLevel: number;
    level: number;
}
export declare class Tiling {
    private disposed;
    fiveId: string;
    level: number;
    pedding: number;
    maxRequest: number;
    appearDuration: number;
    maxCacheTile: number;
    imageOptions: ImageOptions;
    private boundingMesh;
    private tileTree;
    private tileMeshes;
    private textureLoader;
    observer: WorkObserver | null;
    frustum: THREE.Frustum;
    scene: THREE.Scene;
    camera: THREE.PerspectiveCamera;
    renderTarget: THREE.WebGLRenderTarget;
    private forceRenderWhenNextUpdate;
    constructor(options: {
        fiveId: string;
    });
    dispose(): void;
    cleanup(): void;
    setObserver(observer: WorkObserver | null): void;
    update(frameState: TilingFrameState): boolean;
}
