import * as i0 from '@angular/core';
import { AfterViewInit, Renderer2, ElementRef } from '@angular/core';
import { DrawingContextInterface, DrawingSvgInterface } from '@obliczeniowo/elementary/drawing';
import { Point2D, Point3D } from '@obliczeniowo/elementary/classes';
import * as i2 from '@angular/common';
import * as i3 from '@obliczeniowo/elementary/buttons';

declare class Diagram3D {
    protected svg: SVGSVGElement;
    protected xAxisLength: number;
    protected yAxisLength: number;
    protected zAxisLength: number;
    protected xAxisAngle: number;
    protected yAxisAngle: number;
    protected zAxisAngle: number;
    protected xScale: number;
    protected yScale: number;
    protected zScale: number;
    protected correctionAngle: number;
    protected offsetLongitude: number;
    protected offsetLatitude: number;
    private pLatitude;
    protected get latitude(): number;
    protected set latitude(value: number);
    private pLongitude;
    protected get longitude(): number;
    protected set longitude(value: number);
    protected anchor: Point2D;
    protected dx: number;
    protected dy: number;
    private pzValues;
    get zValues(): number[][];
    set zValues(value: number[][]);
    constructor(svg: SVGSVGElement);
    diagramPosToDrawingArea(p3d: Point3D): Point2D;
    pointsAngle(x1: number, y1: number, x2: number, y2: number): number;
    setDiagramAngles(latitude: number, longitude: number): void;
    setLatitude(latitude: number): void;
    setLongitude(longitude: number): void;
    setAxisAngles(): void;
    protected drawAxis(dc: DrawingContextInterface, offset?: Point3D): void;
    protected drawNet(dc: DrawingContextInterface, offset?: Point3D): void;
    draw(dc: DrawingContextInterface): void;
    mouse(x: number, y: number, dc: DrawingContextInterface): void;
}

declare class Diagram3DComponent implements AfterViewInit {
    protected renderer: Renderer2;
    readonly width = 800;
    readonly height = 600;
    protected diagram3d: Diagram3D;
    protected dc: DrawingSvgInterface;
    protected mousePos: Point2D;
    diagram: ElementRef<SVGSVGElement>;
    protected pzValues: number[][];
    set zValues(zValues: number[][]);
    set latitude(latitude: number);
    set longitude(longitude: number);
    constructor(renderer: Renderer2);
    ngAfterViewInit(): void;
    mouseMove(event: any): void;
    pdf(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<Diagram3DComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<Diagram3DComponent, "obl-diagram3-d", never, { "zValues": { "alias": "zValues"; "required": false; }; "latitude": { "alias": "latitude"; "required": false; }; "longitude": { "alias": "longitude"; "required": false; }; }, {}, never, never, false, never>;
}

declare class Diagram3DModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<Diagram3DModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<Diagram3DModule, [typeof Diagram3DComponent], [typeof i2.CommonModule, typeof i3.ButtonsModule], [typeof Diagram3DComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<Diagram3DModule>;
}

export { Diagram3D, Diagram3DComponent, Diagram3DModule };
