import { NgZone } from '@angular/core';
import { Observable } from 'rxjs';
import { BoundsLiteral, CircleManager, GeoPoint, MapsApiWrapper, NgMapsCircleDirective } from '@ng-maps/core';
import * as i0 from "@angular/core";
export declare class GoogleCircleManager extends CircleManager<google.maps.Circle> {
    constructor(_mapsWrapper: MapsApiWrapper, _zone: NgZone);
    /**
     * @fixme implement commented properties
     */
    addCircle(circle: NgMapsCircleDirective): Promise<void>;
    /**
     * Removes the given circle from the map.
     */
    removeCircle(circle: NgMapsCircleDirective): Promise<void>;
    /**
     * @todo check how to improve type casting
     * @param circle instance of {@link NgMapsCircleDirective}
     * @param options options for the circle
     */
    setOptions(circle: NgMapsCircleDirective, options: google.maps.CircleOptions): Promise<void>;
    getBounds(circle: NgMapsCircleDirective): Promise<BoundsLiteral | null>;
    getCenter(circle: NgMapsCircleDirective): Promise<GeoPoint | null>;
    getRadius(circle: NgMapsCircleDirective): Promise<number | null>;
    setCenter(circle: NgMapsCircleDirective): Promise<void>;
    setEditable(circle: NgMapsCircleDirective): Promise<void>;
    setDraggable(circle: NgMapsCircleDirective): Promise<void>;
    setVisible(circle: NgMapsCircleDirective): Promise<void>;
    setRadius(circle: NgMapsCircleDirective): Promise<void>;
    createEventObservable<T>(eventName: string, circle: NgMapsCircleDirective): Observable<T>;
    static ɵfac: i0.ɵɵFactoryDeclaration<GoogleCircleManager, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<GoogleCircleManager>;
}
