import { GoogleMapsApiService } from '../../api/google-maps-api.service'; import { IGoogleMapsNativeObject } from '../native/i-google-maps-native-object'; import { IGoogleMapsNativeObjectEmittingWrapper } from './i-google-maps-native-object-emitting-wrapper'; import { GoogleMapsNativeObjectWrapper } from './google-maps-native-object-wrapper'; /** * Provides the base functionality for wrapper objects which emit events. * Wrappers like GoogleMap, GoogleMapsPolygon, etc. should extend this class. * * @abstract * @extends {GoogleMapsNativeObjectWrapper} * @implements {IGoogleMapsNativeObjectEmittingWrapper} * @template TNative The type of native object the wrapper will work with. */ export declare abstract class GoogleMapsNativeObjectEmittingWrapper extends GoogleMapsNativeObjectWrapper implements IGoogleMapsNativeObjectEmittingWrapper { /** * Creates an instance of GoogleMapsNativeObjectEmittingWrapper. * * @param {GoogleMapsApiService} api The instance of the maps api service. * @param {TNative} native The instantiated native object to be wrapped. */ constructor(api: GoogleMapsApiService, native: TNative); /** * Registers a handler to a specific event of the native object and takes care of executing the handler inside angular's zone. * * @param {string} eventName The name of the native event to register the handler for. * @param {(...args: any[]) => void} handleEvent The function to execute when the event is triggered by the native object. * @returns {() => void} An function for unregistering the handler from the event. */ listenTo(eventName: string, handleEvent: (...args: any[]) => void): () => void; /** * Unregisters **all** handlers previously registered to handle a specific event. * * @param {string} eventName The name of the native event for which to unregister all handlers. */ stopListeningTo(eventName: string): void; /** * Unregisters all handlers of any previously registered native event. */ clearListeners(): void; }