import { NDArray, DataValue, LazyLoader, LazyIndexRange } from '../types.js'; export type DataBlockKind = 'eager' | 'lazy'; interface BaseDataBlock { readonly kind: DataBlockKind; readonly shape: number[]; materialize(): NDArray; getValue(indices: number[]): DataValue; clone(): DataBlock; } export interface EagerDataBlock extends BaseDataBlock { kind: 'eager'; } export interface LazyDataBlock extends BaseDataBlock { kind: 'lazy'; fetch(ranges: Record): Promise; } export type DataBlock = EagerDataBlock | LazyDataBlock; export declare function createEagerBlock(data: NDArray): EagerDataBlock; export declare function createLazyBlock(shape: number[], loader: LazyLoader): LazyDataBlock; export declare function isLazyBlock(block: DataBlock): block is LazyDataBlock; export {}; //# sourceMappingURL=data-block.d.ts.map