import type { LiveComponent, LiveElement } from '@use-gpu/live'; import type { ElementType, TensorArray, VectorLike, Emitter } from '@use-gpu/core'; export type TensorProps = { /** Input size up to [width, height, depth, layers] */ size?: number[]; /** Shorthand for size=[length] */ length?: number; /** WGSL type per sample */ format?: string; /** Input data */ data?: VectorLike; /** Input emitter expression */ expr?: Emitter; /** Emit N items per `expr` call. Output size is `[items, ...size]` if > 1. */ items?: number; /** Emit 0 or N items per `expr` call. Output size is `[emitted]` or `[items, emitted]`. */ sparse?: boolean; /** Add current `TimeContext` to the `expr` arguments. */ time?: boolean; /** Resample `data` or `expr` on every animation frame. */ live?: boolean; /** Inject into DataContext under this key(s) */ as?: S; /** Omit to provide data context instead. */ render?: S extends any[] ? (data: Record, TensorArray>) => LiveElement : (data: TensorArray) => LiveElement; children?: LiveElement | (S extends any[] ? (data: Record, TensorArray>) => LiveElement : (data: TensorArray) => LiveElement); }; /** Sample up-to-4D array of a WGSL type. Reads input `data` or samples a given `expr`. */ export declare const Tensor: LiveComponent>;