import { ContextWebGL } from './ContextWebGL';
import { ContextGLMipFilter } from '../base/ContextGLMipFilter';
import { ContextGLTextureFilter } from '../base/ContextGLTextureFilter';
import { ContextGLWrapMode } from '../base/ContextGLWrapMode';
import { SamplerStateWebGL } from './SamplerStateWebGL';
import { TextureBaseWebGL } from './TextureBaseWebGL';
import { TextureWebGL } from './TextureWebGL';
import { RenderTargetWebGL } from './RenderTargetWebGL';
interface IPoint {
    x: number;
    y: number;
}
interface IRectangle extends IPoint {
    width: number;
    height: number;
}
export declare class TextureContextWebGL {
    private _context;
    static MAX_SAMPLERS: number;
    _lastBoundedTexture: TextureWebGL;
    _samplerStates: SamplerStateWebGL[];
    _currentRT: RenderTargetWebGL;
    private _gl;
    constructor(_context: ContextWebGL);
    bindRenderTarget(target: RenderTargetWebGL, check?: boolean): RenderTargetWebGL;
    bindTexture(texture: TextureWebGL | null, check?: boolean, target?: number): TextureWebGL;
    uploadFromArray(target: TextureWebGL, array: Uint8Array | Array<number> | null, miplevel?: number, premultiplied?: boolean): void;
    setTextureAt(sampler: number, texture: TextureWebGL): number;
    setSamplerStateAt(sampler: number, wrap: ContextGLWrapMode, filter: ContextGLTextureFilter, mipfilter: ContextGLMipFilter): void;
    unsafeCopyToTexture(target: TextureWebGL, rect: IRectangle, destPoint: IPoint): void;
    setRenderToTexture(target: TextureBaseWebGL, enableDepthAndStencil?: boolean, antiAlias?: boolean): void;
    setRenderToBackBuffer(): void;
    setFrameBuffer(target: TextureWebGL, enableDepthAndStencil: boolean, antiAlias: boolean): void;
    initFrameBuffer(target: TextureWebGL, antiAlias: boolean, depthStencil: boolean): void;
    presentFrameBufferTo(source: RenderTargetWebGL | null, target: TextureWebGL, rect: IRectangle, point: IPoint): void;
    /**
     * Blit self texture to renderbuffer if a multisampled
     */
    blitTextureToRenderbuffer(target: TextureWebGL): void;
    disposeTexture(texture: TextureWebGL): void;
}
export {};
//# sourceMappingURL=TextureContextWebGL.d.ts.map