import * as i0 from '@angular/core';
import { AfterViewInit, OnDestroy, ElementRef, ChangeDetectorRef } from '@angular/core';
import { Marker } from 'cobe';

type GlobeOptions = {
    width?: number;
    height?: number;
    phi?: number;
    theta?: number;
    mapSamples?: number;
    mapBrightness?: number;
    mapBaseBrightness?: number;
    baseColor?: [number, number, number];
    markerColor?: [number, number, number];
    glowColor?: [number, number, number];
    markers?: Marker[];
    diffuse?: number;
    devicePixelRatio?: number;
    dark?: number;
    opacity?: number;
    offset?: [number, number];
    scale?: number;
    context?: WebGLContextAttributes;
};
type COBEOptionsPart = {
    width: number;
    height: number;
    phi: number;
    theta: number;
    mapSamples: number;
    mapBrightness: number;
    mapBaseBrightness?: number;
    baseColor: [number, number, number];
    markerColor: [number, number, number];
    glowColor: [number, number, number];
    markers: Marker[];
    diffuse: number;
    devicePixelRatio: number;
    dark: number;
    opacity?: number;
    offset?: [number, number];
    scale?: number;
    context?: WebGLContextAttributes;
};

declare class NgxGlobeComponent implements AfterViewInit, OnDestroy {
    private readonly cdr;
    private platformId;
    globeWrapperElement: ElementRef<HTMLCanvasElement>;
    globeCanvas: ElementRef<HTMLCanvasElement>;
    styleClass?: string;
    rotationSpeed: number;
    set globeOptions(options: GlobeOptions);
    set globeCanvasSize(size: number);
    style: any;
    private globeSize?;
    private globeInitialized;
    private globe?;
    cobeOptions: COBEOptionsPart;
    private pointerInteracting;
    pointerInteractionMovement: number;
    private globeRotation;
    private intersectionObserver?;
    private isAnimating;
    constructor(cdr: ChangeDetectorRef, platformId: object);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    initCanvas(): void;
    setCanvasSize(): void;
    renderContents(isIntersecting: boolean): void;
    initGlobe(): void;
    updatePointerInteraction(value: any): void;
    updateMovement(clientX: any): void;
    setGlobeOptions(options: GlobeOptions): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxGlobeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgxGlobeComponent, "om-globe", never, { "styleClass": { "alias": "styleClass"; "required": false; }; "rotationSpeed": { "alias": "rotationSpeed"; "required": false; }; "globeOptions": { "alias": "globeOptions"; "required": false; }; "globeCanvasSize": { "alias": "globeSize"; "required": false; }; }, {}, never, never, true, never>;
}

export { NgxGlobeComponent };
export type { COBEOptionsPart, GlobeOptions };
