/** * Concatenation operations for DataArrays and Datasets * Provides lazy concatenation along specified dimensions */ import { NDArray, DataValue, DimensionName, CoordinateValue, Coordinates, Attributes, LazyIndexRange } from '../types.js'; export interface ConcatOptions { dim: DimensionName; fillValue?: DataValue; } export interface DataArrayConcatOperand { getData: (ranges: { [dimension: string]: LazyIndexRange; }) => Promise; dims: DimensionName[]; shape: number[]; coords: Coordinates; attrs: Attributes; name?: string; isLazy: boolean; } export interface ConcatMetadata { dim: DimensionName; dimIndex: number; firstSize: number; secondSize: number; combinedSize: number; newShape: number[]; newCoords: Coordinates; newAttrs: Attributes; name?: string; } /** * Validate that two DataArrays can be concatenated along the specified dimension */ export declare function validateConcatenation(first: DataArrayConcatOperand, second: DataArrayConcatOperand, dim: DimensionName): void; /** * Compute metadata for concatenation operation */ export declare function computeConcatMetadata(first: DataArrayConcatOperand, second: DataArrayConcatOperand, firstCoords: CoordinateValue[], secondCoords: CoordinateValue[], combinedCoords: CoordinateValue[], dim: DimensionName): ConcatMetadata; /** * Create a lazy loader for concatenated DataArrays * Routes queries to the appropriate source DataArray based on the requested range */ export declare function createConcatLoader(first: DataArrayConcatOperand, second: DataArrayConcatOperand, metadata: ConcatMetadata): (ranges: { [dimension: string]: LazyIndexRange; }) => Promise; /** * Concatenate two NDArrays along a specific dimension */ export declare function concatenateArrays(arr1: NDArray, arr2: NDArray, dimIndex: number): NDArray; //# sourceMappingURL=concat.d.ts.map