import type { GetInterpolateValue } from '.';
import type { MValue, Properties, RGBA, VectorPoint } from '../..';
/**
 * # Lanczos Interpolation
 *
 * ## Description
 * Perform interpolation using the Lanczos filter. This method uses a kernel-based approach
 * to weigh contributions from nearby points, providing a balance between smoothing and sharpness.
 *
 * ## Usage
 * ```ts
 * import { lanczosInterpolation, PointIndexFast } from 'gis-tools-ts';
 * import type { VectorPoint } from 'gis-tools-ts';
 *
 * // We have m-value data that we want to interpolate
 * interface TempData { temp: number; }
 *
 * const pointIndex = new PointIndexFast<TempData>();
 * // add lots of points
 * pointIndex.insertLonLat(lon, lat, data);
 * // ....
 *
 * // given a point we are interested in
 * const point: VectorPoint = { x: 20, y: -40 };
 * //  get a collection of points relative to the point
 * const data = await pointIndex.searchRadius(point.x, point.y, radius);
 *
 * // interpolate
 * const interpolatedValue = lanczosInterpolation<TempData>(point, data, (p) => p.m.temp);
 * ```
 * @param point - Point to interpolate
 * @param refData - Reference data points
 * @param getValue - Function to extract the value from a reference point
 * @param kernelRadius - Lanczos kernel radius (default is 2) Recommend to only use 2 or 3.
 * @returns - The interpolated value
 */
export declare function lanczosInterpolation<T extends MValue = Properties>(point: VectorPoint, refData: VectorPoint<T>[], getValue?: GetInterpolateValue<T>, kernelRadius?: number): number;
/**
 * Helper function for {@link lanczosInterpolation} on RGB(A) data.
 * Light in RGB data is logarithmically weighted, so we need to expand each component by n^2 to
 * get the correct weight for each component.
 * @param point - Point to interpolate
 * @param refData - Reference data points
 * @param kernelRadius - Lanczos kernel radius (default is 2) Recommend to only use 2 or 3.
 * @returns - The interpolated RGBA data.
 */
export declare function rgbaLanczosInterpolation(point: VectorPoint, refData: VectorPoint<RGBA>[], kernelRadius?: number): RGBA;
//# sourceMappingURL=lanczos.d.ts.map