import type { Vector2, Vector2Like } from 'modern-path2d'; import type { RectangleLike, WebGLRenderer } from '../../core'; import type { Texture2D } from '../resources'; import type { Rectangulable, RectangulableEvents } from './interfaces'; import type { NodeEvents } from './Node'; import { Transform2D } from 'modern-path2d'; import { Aabb2D } from '../../core'; import { RenderTarget } from '../resources'; import { Node } from './Node'; export interface ViewportEvents extends NodeEvents, RectangulableEvents { } export interface Viewport { on: (event: K, listener: (...args: ViewportEvents[K]) => void) => this; once: (event: K, listener: (...args: ViewportEvents[K]) => void) => this; off: (event: K, listener: (...args: ViewportEvents[K]) => void) => this; emit: (event: K, ...args: ViewportEvents[K]) => this; } export declare class Viewport extends Node implements Rectangulable { readonly canvasTransform: Transform2D; renderTargetIndex: number; readonly renderTargets: RenderTarget[]; x: number; y: number; width: number; height: number; mipLevel: number; msaa: boolean; get valid(): boolean; get renderTarget(): RenderTarget; get previousRenderTarget(): RenderTarget; get texture(): Texture2D; getViewport(): Viewport; protected _updateProperty(key: string, value: any, oldValue: any): void; flush(renderer: WebGLRenderer): void; resize(width: number, height: number): void; activate(renderer: WebGLRenderer, frame?: RectangleLike): boolean; redraw(renderer: WebGLRenderer, cb: () => void): boolean; activateWithCopy(renderer: WebGLRenderer, target: Viewport): void; renderStart(renderer: WebGLRenderer, frame?: RectangleLike): void; renderEnd(renderer: WebGLRenderer, oldViewport: Viewport | undefined): void; render(renderer: WebGLRenderer, next?: () => void): void; getRect(): Aabb2D; toCanvasGlobal

(screenPos: Vector2Like, newPos?: P): P; toCanvasScreen

(globalPos: Vector2Like, newPos?: P): P; protected _destroy(): void; }