/**
 * @packageDocumentation
 * @module Functionals
 */
import { Rotation, TYPE, Vector } from "./math-types";
import { PCalculus, PFunction } from "./pfunction";
import { IndefiniteIntegral, IPCompileResult, IPFunction, IPFunctionBase, IPFunctionCalculus, Variable } from "./base";
import { Unit } from "./units";
import { StyleContext } from "./latex";
export declare class NumericDerivative extends PCalculus<number> {
    private readonly from;
    private readonly base;
    readonly time_derivative: number;
    constructor(f: IPFunction<number>, base: IPFunction<number>, unit: Unit, attributes?: any);
    differentiate(): IPFunctionCalculus<number>;
    integrate(): IndefiniteIntegral<number>;
    get returnType(): TYPE.SCALAR;
    protected compileFn(): IPCompileResult<number>;
    toTex(varName?: Variable, ctx?: StyleContext): string;
}
export declare class VectorDerivative extends PCalculus<Vector<Unit>> {
    private readonly from;
    constructor(f: IPFunctionBase<Vector<Unit>>);
    differentiate(): IPFunctionCalculus<Vector<Unit>>;
    integrate(): IndefiniteIntegral<Vector<Unit>>;
    get returnType(): TYPE.VECTOR;
    protected compileFn(): IPCompileResult<Vector<Unit>>;
}
export declare class RotationDerivative extends PFunction<Rotation<Unit>> {
    private readonly from;
    constructor(f: PFunction<Rotation<Unit>>, unit: Unit);
    differentiate(): PFunction<Rotation<Unit>>;
    integrate(): PFunction<Rotation<Unit<import("./units").UnitTerms>>, Unit<import("./units").UnitTerms>, 1>;
    get returnType(): TYPE.ROTATION;
    protected compileFn(): IPCompileResult<Rotation<Unit>>;
}
//# sourceMappingURL=derivative.d.ts.map