import { ProjectionBase, Vector3D, Matrix3D, AssetBase, IAbstractionPool, IAbstraction } from '@awayjs/core';
import { Stage, ImageBase, ContextGLClearMask, ContextGLProfile, ContextMode } from '@awayjs/stage';
import { IContainer } from './base/IContainer';
import { ContainerNode } from './partition/ContainerNode';
export declare class View extends AssetBase implements IAbstractionPool {
    private static _store;
    private _shareContext;
    private _rect;
    private _backgroundColor;
    private _backgroundRed;
    private _backgroundGreen;
    private _backgroundBlue;
    private _projection;
    private _stage;
    private _target;
    private _targetWidth;
    private _targetHeight;
    private _focalLength;
    private _pixelRatio;
    private _frustumMatrix3D;
    private _viewMatrix3D;
    private _inverseViewMatrix3D;
    private _components;
    private _offset;
    private _scale;
    private _frustumMatrix3DDirty;
    private _viewMatrix3DDirty;
    private _inverseViewMatrix3DDirty;
    private _onInvalidateSizeDelegate;
    private _onInvalidateViewMatrix3DDelegate;
    /**
     *
     */
    backgroundAlpha: number;
    /**
     *
     */
    backgroundDepth: number;
    /**
     *
     */
    backgroundStencil: number;
    /**
     *
     */
    preservePixelRatio: boolean;
    /**
     *
     */
    preserveFocalLength: boolean;
    /**
     *
     */
    preserveDimensions: boolean;
    /**
     *
     */
    get shareContext(): boolean;
    /**
     *
     */
    get x(): number;
    set x(value: number);
    /**
     *
     */
    get y(): number;
    set y(value: number);
    /**
     *
     */
    get width(): number;
    set width(value: number);
    /**
     *
     */
    get height(): number;
    set height(value: number);
    /**
     *
     */
    get backgroundColor(): number;
    set backgroundColor(value: number);
    /**
     *
     */
    get focalLength(): number;
    set focalLength(value: number);
    /**
     *
     */
    get pixelRatio(): number;
    set pixelRatio(value: number);
    get projection(): ProjectionBase;
    set projection(value: ProjectionBase);
    get target(): ImageBase;
    set target(value: ImageBase);
    get stage(): Stage;
    get frustumMatrix3D(): Matrix3D;
    get viewMatrix3D(): Matrix3D;
    get inverseViewMatrix3D(): Matrix3D;
    constructor(projection?: ProjectionBase, stage?: Stage, forceSoftware?: boolean, profile?: ContextGLProfile, mode?: ContextMode, alpha?: boolean);
    requestAbstraction(_asset: IContainer): IAbstraction;
    storeAbstraction(abstraction: IAbstraction): void;
    getNode(entity: IContainer): ContainerNode;
    clear(enableClear?: boolean, enableDepthAndStencil?: boolean, surfaceSelector?: number, mipmapSelector?: number, clearMaskSelector?: ContextGLClearMask): void;
    present(): void;
    project(position: Vector3D, target?: Vector3D): Vector3D;
    unproject(sX: number, sY: number, sZ: number, target?: Vector3D): Vector3D;
    dispose(): void;
    private _onInvalidateSize;
    private _onInvalidateViewMatrix3D;
    private _updateTarget;
    private _updateDimensions;
    private _updateFocalLength;
    private _updatePixelRatio;
    private _invalidateViewMatrix3D;
    private _invalidateSize;
}
//# sourceMappingURL=View.d.ts.map