import { scalar, has } from "./core"; declare class _complex { r: number; i: number; constructor(r: number, i: number); from(b: number): _complex; dup(): complex; neg(): complex; conj(): complex; recip(): complex; magSq(): number; mag(): number; abs(): number; arg(): number; scale(b: number): complex; mul(b: complex): complex; add(b: complex): complex; sub(b: complex): complex; div(b: complex): complex; npow(b: number): complex; rpow(n: number, d: number): complex; pow(b: complex): complex; eq(b: complex): boolean; approx(b: complex, eps?: number): boolean; sqrt(): _complex; toString(): string; } export declare const complex: ((r: number, i?: number) => _complex) & Pick, "rpow" | "from" | "ipow" | "eq" | "dup" | "neg" | "scale" | "add" | "sub" | "mul" | "div" | "func" | "pow"> & { variable(name: string): complex | undefined; lt: (a: complex, b: complex) => boolean; fromPolar(r: number, t: number): _complex; zero(): _complex; re(a: complex): _complex; im(a: complex): _complex; sqrt(a: complex | number): _complex; ln(a: complex): _complex; exp(a: complex): _complex; sin(a: complex): _complex; cos(a: complex): _complex; tan(a: complex): _complex; sinh(a: complex): _complex; cosh(a: complex): _complex; tanh(a: complex): _complex; conjugatePair(c: complex): _complex[]; }; export type complex = _complex; export default complex; type scalarComplex> = scalar & has<'sqrt'> & has<'rpow'>; declare class _complexT> { r: T; i: T; constructor(r: T, i: T); dup(): _complexT; neg(): _complexT; conj(): _complexT; recip(): _complexT; magSq(): T; mag(): any; abs(): any; scale(b: number): _complexT; rscale(b: T): _complexT; mul(b: complexT): _complexT; add(b: complexT): _complexT; sub(b: complexT): _complexT; div(b: complexT): _complexT; arg(): number; sqrt(): _complexT; npow(n: number): _complexT; rpow(n: number, d: number): _complexT; toString(): string; } export declare const complexT: (>(r: T, i: T) => _complexT) & { zero(): _complex; fromPolar>(r: T, t: number): _complexT; conjugatePair>(c: complexT): complexT[]; }; export type complexT> = _complexT;