import type { Tensor } from '../../gpu/tensor.js'; import type { BackwardRegistrySchema } from '../../config/schema/backward-registry.schema.js'; export const OpType: { EMBED: 'embed'; MATMUL: 'matmul'; RMSNORM: 'rmsnorm'; RESIDUAL_ADD: 'residual_add'; RESHAPE: 'reshape'; ROW_SLICE: 'row_slice'; LAYERNORM: 'layernorm'; ATTENTION: 'attention'; SOFTMAX: 'softmax'; ROPE: 'rope'; SILU: 'silu'; SILU_ROWSPLIT: 'silu_rowsplit'; SILU_GATED: 'silu_gated'; GELU: 'gelu'; SCALE: 'scale'; CROSS_ENTROPY: 'cross_entropy'; BIAS_ADD: 'bias_add'; UPSAMPLE2D: 'upsample2d'; PIXEL_SHUFFLE: 'pixel_shuffle'; GROUPNORM: 'groupnorm'; CONV2D: 'conv2d'; }; export declare function resolveMatmulBackwardOptions = Record>( options?: T ): T & { computeGradInput: boolean; computeGradWeight: boolean; }; export declare function computeSiluGatedBackwardValues( gate: ArrayLike, up: ArrayLike, gradOutput: ArrayLike, swigluLimit?: number ): { gradGate: Float32Array; gradUp: Float32Array; }; export interface AutogradRecord { op: string; inputs: Tensor[]; output: Tensor; options?: Record; } export interface BackwardSeed { tensor: Tensor; grad: Tensor; } export type BackwardSeedInput = | Tensor | Map | BackwardSeed[] | { seeds: BackwardSeed[] }; export declare class AutogradTape { constructor(registry: BackwardRegistrySchema); registry: BackwardRegistrySchema; records: AutogradRecord[]; watch(tensor: T): T; record( op: string, fn: (...args: Tensor[]) => Promise, inputs: Tensor[], options?: Record ): Promise; backward(gradOutput: BackwardSeedInput): Promise>; reset(): void; }