/**
 * GPU texture management for the RenderCoordinator.
 *
 * Handles lazy allocation of render target textures and MSAA overlay management.
 * Uses a multi-pass rendering strategy:
 * 1. Main scene → single-sample texture
 * 2. Blit to MSAA target + draw annotations (MSAA overlay pass)
 * 3. Draw UI overlays on resolved swapchain (single-sample)
 *
 * @module textureManager
 */
/**
 * Texture manager state exposed to the render coordinator.
 */
export interface TextureManagerState {
    readonly mainColorView: GPUTextureView | null;
    readonly overlayMsaaView: GPUTextureView | null;
    readonly overlayBlitBindGroup: GPUBindGroup | null;
    readonly overlayBlitPipeline: GPURenderPipeline;
    readonly msaaSampleCount: number;
}
/**
 * Configuration for texture manager creation.
 */
export interface TextureManagerConfig {
    readonly device: GPUDevice;
    readonly targetFormat: GPUTextureFormat;
}
/**
 * Texture manager interface returned by factory function.
 */
export interface TextureManager {
    /**
     * Ensures textures are allocated for the given dimensions.
     * Reallocates if size or format changes.
     *
     * @param width - Canvas width in device pixels
     * @param height - Canvas height in device pixels
     */
    ensureTextures(width: number, height: number): void;
    /**
     * Gets current texture manager state for rendering.
     *
     * @returns Current state with texture views and bind groups
     */
    getState(): TextureManagerState;
    /**
     * Disposes all GPU resources.
     * Textures, views, and bind groups are destroyed.
     */
    dispose(): void;
}
/**
 * Creates a texture manager for render target allocation and management.
 *
 * The texture manager uses lazy allocation: textures are only created when
 * first requested via ensureTextures(), and are reallocated if dimensions
 * or format change.
 *
 * **Architecture:**
 * - Main color texture: Single-sample render target for main scene
 * - Overlay MSAA texture: Multi-sample render target for annotations
 * - Blit pipeline: Copies main color to MSAA target for overlay pass
 *
 * @param config - Configuration with device and target format
 * @returns Texture manager instance
 */
export declare function createTextureManager(config: TextureManagerConfig): TextureManager;
//# sourceMappingURL=textureManager.d.ts.map