import type { ITensor, Shape } from "./api.js";
/**
 * Helper function for various tensor operators which support broadcasting.
 * Takes two tensors and attempts to adjust their shape & stride configurations
 * to be compatible, applying the steps and rules below. Returns an object of
 * adjusted shape and possibly adjusted shallow copies of both tensors.
 *
 * - if the dimensions are unequal, the smaller tensor's dimensions will be
 *   increased as needed. The size of each added dimension will be set to 1 and
 *   its stride to zero.
 * - Size of each dimension will be compared and only the following cases are
 *   accepted (otherwise will throw an error): sizes are equal or one side is 1
 * - Any of the tensors requiring shape adjustments will be shallow copied with
 *   new shape/stride config applied (via {@link ITensor.broadcast}).
 *
 * @param a
 * @param b
 */
export declare const broadcast: <T = number>(a: ITensor<T>, b: ITensor<T>) => {
    shape: Shape;
    a: ITensor<T>;
    b: ITensor<T>;
};
//# sourceMappingURL=broadcast.d.ts.map