import { NDArray, DataValue, DimensionName, Coordinates, Attributes } from '../types.js'; import type { DataBlock } from '../core/data-block.js'; export interface ArrayWhereOperand { kind: 'array'; block: DataBlock; dims: DimensionName[]; coords: Coordinates; attrs?: Attributes; name?: string; } export interface ScalarWhereOperand { kind: 'scalar'; value: DataValue; attrs?: Attributes; name?: string; } export type WhereOperand = ArrayWhereOperand | ScalarWhereOperand; export interface WhereOptions { keepAttrs?: boolean | 'x' | 'y' | ((attrs: { cond?: Attributes; x?: Attributes; y?: Attributes; }) => Attributes | undefined); preferNameFrom?: 'x' | 'y' | 'cond'; } export interface BinaryOpOptions { keepAttrs?: boolean | 'left' | 'right' | ((attrs: { left?: Attributes; right?: Attributes; }) => Attributes | undefined); preferNameFrom?: 'left' | 'right'; } export interface WhereResult { data: NDArray; dims: DimensionName[]; coords: Coordinates; attrs?: Attributes; name?: string; } export declare function isArrayOperand(operand: WhereOperand): operand is ArrayWhereOperand; export declare function computeWhere(cond: WhereOperand, x: WhereOperand, y: WhereOperand, options?: WhereOptions): WhereResult; export declare function computeBinaryOp(left: WhereOperand, right: WhereOperand, operator: (leftValue: DataValue, rightValue: DataValue) => DataValue, options?: BinaryOpOptions): WhereResult; //# sourceMappingURL=where.d.ts.map