import { CoordinateController, InteractiveConfig, InteractiveType, SceneEvent, ViewEntity } from '@turbox3d/event-manager';
import { BaseScene, BaseSceneProps, ComponentProps, SceneType, ViewportInfo } from '@turbox3d/renderer-core';
import { Vec2, Vec3 } from '@turbox3d/shared';
import * as PIXI from 'pixi.js';
export declare const Scene2DSymbol: unique symbol;
export interface Scene2DProps extends BaseSceneProps {
    /**
     * 根视图容器参数（在一个 renderer 中渲染多个子视图并互相隔离时使用）
     */
    viewport?: ViewportInfo;
    /**
     * 2d 相机的尺寸（x是宽度、y是高度）单位：毫米
     */
    camera2dSize?: Vec2;
    /** resizeFramebuffer */
    resizeFramebuffer?: boolean;
}
export declare class Scene2D extends BaseScene<PIXI.Application, PIXI.ICanvas, never, never, never, PIXI.Container, PIXI.DisplayObject, PIXI.Sprite> {
    defaultSceneViewType: symbol;
    sceneType: SceneType;
    private timer;
    private offsetCenter;
    private brt?;
    private rt?;
    private originalResizeFramebufferFunction;
    constructor(props: Exclude<ComponentProps<Scene2DProps>, ViewEntity>);
    createView(): PIXI.Container<PIXI.DisplayObject>;
    getViewInfo(): {
        position: {
            x: number;
            y: number;
        };
        scale: {
            x: number;
            y: number;
        };
        visible: boolean;
    };
    setViewPosition(position: Partial<Vec3>): void;
    setViewScale(scale: Partial<Vec3>): void;
    setViewVisible(visible: boolean): void;
    setViewportPosition(position: Partial<Vec3>): void;
    setViewportScale(scale: Partial<Vec3>): void;
    setViewportVisible(visible: boolean): void;
    addRootViewContainer(app: PIXI.Application): void;
    createViewport(): void;
    getViewport(): PIXI.Sprite | undefined;
    getViewportInfo(): {
        position: {
            x: number;
            y: number;
        };
        scale: {
            x: number;
            y: number;
        };
        visible: boolean;
        width: number;
        height: number;
    } | undefined;
    createApp(): PIXI.Application<PIXI.ICanvas>;
    updateCameraTarget(): void;
    updateCameraPosition(): void;
    /**
     * 修复 PIXI bug，改写 resizeFramebuffer，解决 pixi frame buffer 只能由大变小但不能由小变大 resize 的问题
     * 因为修复此 bug 会导致性能问题，所以只在必要的时候使用，通过参数控制改写的内容
     */
    private fixResizeFramebufferBug;
    private isWebGL;
    destroyRendererInteraction(app: PIXI.Application): void;
    addChildView(view: PIXI.DisplayObject): void;
    getCanvasView(app: PIXI.Application): {
        width: number;
        height: number;
        renderer: PIXI.ICanvas;
    };
    unmountCanvas(): void;
    mountCanvas(): void;
    getHitTargetOriginal(): (point: Vec2, container: PIXI.Container, configMap: Map<PIXI.DisplayObject, InteractiveConfig>, interactiveType: InteractiveType) => {
        originalTarget: PIXI.DisplayObject;
        target: PIXI.DisplayObject | undefined;
    };
    updateCursor: (app: PIXI.Application, cursor: string) => void;
    createCoordinateController(app: PIXI.Application): CoordinateController;
    resizeStage: (app: PIXI.Application) => void;
    setBackGroundImage(app: PIXI.Application): void;
    initSkyBox(): void;
    updateResolution(app: PIXI.Application): void;
    resizeViewport(app: PIXI.Application): void;
    destroyApp(app: PIXI.Application): void;
    removeAppChildrenView(app: PIXI.Application): void;
    /** 获取截图 */
    getScreenShot(sx?: number, sy?: number, w?: number, h?: number, fileType?: string, quality?: number, isBase64?: boolean): Promise<string | Blob>;
    canvasScaleImpl(event: SceneEvent): void;
    canvasDragImpl(event: SceneEvent, type: 'start' | 'move' | 'end'): void;
}
