import { Vector2D } from './index';
export declare class ComplexNumber {
    protected re: number;
    protected im: number;
    protected abss: number;
    protected arg: number;
    protected r: number;
    protected phi: number;
    constructor(a: number | string | ComplexNumber, b?: number);
    static readonly ZERO: ComplexNumber;
    static readonly ONE: ComplexNumber;
    static readonly I: ComplexNumber;
    static readonly PI: ComplexNumber;
    static readonly E: ComplexNumber;
    static readonly EPSILON = 1e-16;
    static parse(a: number | string | ComplexNumber, b?: number): ComplexNumber;
    get Real(): number;
    get Imaginary(): number;
    sign(): ComplexNumber;
    add(a: number | string | ComplexNumber, b?: number): ComplexNumber;
    subtract(a: number | string | ComplexNumber, b?: number): ComplexNumber;
    multiply(a: number | string | ComplexNumber, b?: number): ComplexNumber;
    divide(aa: number | string | ComplexNumber, bb?: number): ComplexNumber;
    pow(aa: number | string | ComplexNumber, bb?: number): ComplexNumber;
    sqrt(): ComplexNumber;
    exp(): ComplexNumber;
    log(): ComplexNumber;
    abs(): number;
    magnitude(): number;
    angle(): number;
    sin(): ComplexNumber;
    cos(): ComplexNumber;
    tan(): ComplexNumber;
    cot(): ComplexNumber;
    sec(): ComplexNumber;
    csc(): ComplexNumber;
    asin(): ComplexNumber;
    acos(): ComplexNumber;
    atan(): ComplexNumber;
    acot(): ComplexNumber;
    asec(): ComplexNumber;
    acsc(): ComplexNumber;
    sinh(): ComplexNumber;
    cosh(): ComplexNumber;
    tanh(): ComplexNumber;
    coth(): ComplexNumber;
    sech(): ComplexNumber;
    csch(): ComplexNumber;
    asinh(): ComplexNumber;
    acosh(): ComplexNumber;
    atanh(): ComplexNumber;
    acoth(): ComplexNumber;
    asech(): ComplexNumber;
    acsch(): ComplexNumber;
    inverse(): ComplexNumber;
    conjugate(): ComplexNumber;
    neg(): ComplexNumber;
    ceil(places?: number): ComplexNumber;
    floor(places?: number): ComplexNumber;
    round(places?: number): ComplexNumber;
    equals(a: number | string | ComplexNumber, b?: number): boolean;
    clone(): ComplexNumber;
    valueOf(): number | null;
    isNaN(): boolean;
    isFinite(): boolean;
    toString(): string;
    toVector(): number[];
    toVector2D(): Vector2D;
}
