import type { GmlCoverage } from '../types.js';
/**
 * GeoTIFF metadata extracted from GML Coverage
 */
export interface GeoTiffMetadata {
    /** Image width in pixels */
    width: number;
    /** Image height in pixels */
    height: number;
    /** Geographic bounds [minX, minY, maxX, maxY] */
    bbox?: [number, number, number, number];
    /** Coordinate Reference System (EPSG code or WKT) */
    crs?: string;
    /** Affine transformation matrix [a, b, c, d, e, f] */
    transform?: number[];
    /** Pixel resolution [xRes, yRes] */
    resolution?: [number, number];
    /** Origin point in world coordinates */
    origin?: number[];
    /** Rotation angle in degrees (if applicable) */
    rotation?: number;
    /** Number of bands/channels */
    bands?: number;
    /** Band metadata */
    bandInfo?: Array<{
        name?: string;
        dataType?: string;
        uom?: string;
        description?: string;
    }>;
}
/**
 * Extract GeoTIFF-compatible metadata from GML Coverage
 * Note: Only works with Grid-based coverages (RectifiedGridCoverage, GridCoverage, ReferenceableGridCoverage)
 */
export declare function extractGeoTiffMetadata(coverage: GmlCoverage): GeoTiffMetadata;
/**
 * Calculate world coordinates from pixel coordinates using affine transformation
 */
export declare function pixelToWorld(pixelX: number, pixelY: number, metadata: GeoTiffMetadata): [number, number] | null;
/**
 * Calculate pixel coordinates from world coordinates using affine transformation
 */
export declare function worldToPixel(worldX: number, worldY: number, metadata: GeoTiffMetadata): [number, number] | null;
