export declare enum Unit {
    RADIANS = 0,
    DEGREES = 1,
    ARC_MINUTES = 2,
    ARC_SECONDS = 3,
    HOURS = 4,
    HOUR_ANGLE_MINUTES = 5,
    HOUR_ANGLE_SECONDS = 6,
    ROTATIONS = 7,
    GRADS = 8
}
export declare enum Mode {
    RANGE_LIMIT_SIGNED = 0,
    RANGE_LIMIT_NONNEGATIVE = 1,
    RANGE_UNLIMITED = 2
}
export declare const PI: number;
export declare const HALF_PI: number;
export declare const TWO_PI: number;
export declare const FMT_DD = 1;
export declare const FMT_HH = 1;
export declare const FMT_DDD = 2;
export declare const FMT_MINS = 4;
export declare const FMT_SECS = 8;
export declare const FMT_SIGNED = 16;
export declare function convertToRadians(angle: number, unit: Unit): number;
export declare function convertFromRadians(angle: number, unit: Unit): number;
export declare class Angle {
    static ZERO: Angle;
    static RIGHT: Angle;
    static STRAIGHT: Angle;
    private angle;
    private cached_sin;
    private cached_cos;
    private cached_tan;
    static asin(x: number): Angle;
    static asin_nonneg(x: number): Angle;
    static acos(x: number): Angle;
    static atan(x: number): Angle;
    static atan_nonneg(x: number): Angle;
    static atan2(y: number, x: number): Angle;
    static atan2_nonneg(y: number, x: number): Angle;
    constructor(angle?: number, unit?: Unit, mode?: Mode);
    get radians(): number;
    get degrees(): number;
    get arcMinutes(): number;
    get arcSeconds(): number;
    get hours(): number;
    get rotations(): number;
    get grads(): number;
    getAngle(unit?: Unit): number;
    get sin(): number;
    get cos(): number;
    get tan(): number;
    add(angle2: Angle, mode?: Mode): Angle;
    add_nonneg(angle2: Angle): Angle;
    subtract(angle2: Angle, mode?: Mode): Angle;
    subtract_nonneg(angle2: Angle): Angle;
    complement(mode?: Mode): Angle;
    complement_nonneg(): Angle;
    supplement(mode?: Mode): Angle;
    supplement_nonneg(): Angle;
    opposite(mode?: Mode): Angle;
    opposite_nonneg(): Angle;
    negate(mode?: Mode): Angle;
    negate_nonneg(): Angle;
    multiply(x: number, mode?: Mode): Angle;
    multiply_nonneg(x: number): Angle;
    divide(x: number, mode?: Mode): Angle;
    divide_nonneg(x: number): Angle;
    toString(format?: number, precision?: number): string;
    toSuffixedString(positiveSuffix: string, negativeSuffix: string, format?: number, precision?: number): string;
    toHourString(format?: number, precision?: number): string;
    toTimeString(format?: number, precision?: number): string;
    private static toStringAux;
}
//# sourceMappingURL=angle.d.ts.map