import type { Texture } from '../texture'; import type { Renderbuffer } from './renderbuffer'; import type { RenderPassAttachmentStorageType, RenderPassDepthStencilAttachmentOptions } from './render-pass'; import type { RenderPassDestroyAttachmentType, RenderPassStoreAction } from './render-pass'; import type { Renderer } from './renderer'; export interface FramebufferProps { attachments: Texture[]; depthStencilAttachment?: RenderPassDepthStencilAttachmentOptions; viewport: [x: number, y: number, width: number, height: number]; storeAction: RenderPassStoreAction; name?: string; } export declare enum FilterMode { Nearest = 0, Linear = 1 } export declare enum RenderTextureFormat { RGBA32 = 0, RGBAHalf = 1 } /** * */ export declare class Framebuffer { depthStencilStorageType: RenderPassAttachmentStorageType; name: string; viewport: [x: number, y: number, width: number, height: number]; ready: boolean; externalStorage: boolean; storeAction: RenderPassStoreAction; static create: (props: FramebufferProps, renderer: Renderer) => Framebuffer; resize(x: number, y: number, width: number, height: number): void; resetColorTextures(textures: Texture[]): void; unbind(): void; bind(): void; get stencilStorage(): Renderbuffer | undefined; get depthStorage(): Renderbuffer | undefined; getDepthTexture(): Texture | undefined; getStencilTexture(): Texture | undefined; getColorTextures(): Texture[]; dispose(options?: { depthStencilAttachment?: RenderPassDestroyAttachmentType; }): void; }