import { CustomGradientFunc } from './engine'; import { ScopeFn } from './engine'; import { Scalar, Tensor, Variable } from './tensor'; import { NamedTensorMap, TensorContainer } from './types'; export declare class Gradients { static gradScope(nameOrScopeFn: string | ScopeFn, scopeFn?: ScopeFn): T; static grad(f: (x: I) => O): (x: I, dy?: O) => I; static grads(f: (...args: Tensor[]) => O): (args: Tensor[], dy?: O) => Tensor[]; static valueAndGrad(f: (x: I) => O): (x: I, dy?: O) => { value: O; grad: I; }; static valueAndGrads(f: (...args: Tensor[]) => O): (args: Tensor[], dy?: O) => { grads: Tensor[]; value: O; }; static variableGrads(f: () => Scalar, varList?: Variable[]): { value: Scalar; grads: NamedTensorMap; }; static customGrad(f: CustomGradientFunc): (...args: Tensor[]) => T; }