import ImageLayer from 'ol/layer/Image.js';
import ImageCanvasSource from 'ol/source/ImageCanvas.js';
/**
 * WebGL을 사용하여 날씨 데이터 이미지를 지도에 오버레이하는 레이어
 * 이미지의 RGBA 채널에는 온도, 습도, 바람, 강수량 데이터가 인코딩되어 있음
 */
declare class WebGLCanvasLayer extends ImageLayer<ImageCanvasSource> {
    private canvas;
    private gl;
    private program;
    private texture;
    private buffer;
    private imageLoaded;
    private pendingRender;
    private imageUrl;
    private dataType;
    /**
     * WebGL 캔버스 레이어 생성자
     * @param imageUrl 날씨 데이터가 인코딩된 이미지 URL
     * @param dataType 시각화할 데이터 유형 (temperature, humidity, wind, precipitation)
     */
    constructor(imageUrl: string, dataType?: string);
    /**
     * 데이터 시각화 유형 변경
     */
    updateDataType(type: string): void;
    /**
     * 리소스 해제
     */
    dispose(): void;
    /**
     * 이미지 URL 업데이트
     */
    updateImageUrl(newUrl: string): void;
    /**
     * WebGL 컨텍스트 초기화
     */
    private _initializeWebGL;
    /**
     * 버텍스 버퍼 초기화
     */
    private _initializeBuffers;
    /**
     * 이미지 로드 및 텍스처 생성
     */
    private _loadImage;
    /**
     * 텍스처 렌더링
     */
    private _renderTexture;
    /**
     * 셰이더 프로그램 생성
     */
    private _createShaderProgram;
    /**
     * 셰이더 컴파일
     */
    private _compileShader;
    private _updateWebGLUniforms;
}
export default WebGLCanvasLayer;
