/// import { IGoogleMapsNativeObjectEmittingWrapper } from '../../abstraction/base/i-google-maps-native-object-emitting-wrapper'; import { WrappedNativeFunctions } from '../../abstraction/types/abstraction'; import { Coord, BoundsLike } from '../../abstraction/types/geometry.type'; import { ISuperpowers } from './superpowers/i-superpowers'; /** A type for the native functions of a map which should be wrapped. Used along with the extension interface for the wrapper. */ export declare type WrappedGoogleMapFunctions = WrappedNativeFunctions; /** * Represents the functionality that a map wrapper should provide. * * @export * @interface IGoogleMap * @extends {IGoogleMapsNativeObjectEmittingWrapper} * @extends {WrappedGoogleMapFunctions} */ export interface IGoogleMap extends IGoogleMapsNativeObjectEmittingWrapper, WrappedGoogleMapFunctions { /** * The superpowers charged for the current map instance. * * @type {ISuperpowers} */ readonly superpowers: ISuperpowers; setCenter(center: Coord): void; /** * Calculates the bounds of the given element(s) and fits them all in the screen. * * @param {BoundsLike[]} elements The element(s) to fit. * @param {(number | google.maps.Padding)} [padding] (Optional) Padding to add to the calculated bounds. */ fitBounds(elements: BoundsLike[], padding?: number | google.maps.Padding): void; /** * Calculates the bounds of the given element(s), then pans and zooms the map to fit them all in the screen. * * @param {BoundsLike[]} elements * @param {(number | google.maps.Padding)} [padding] (Optional) Padding to add to the calculated bounds. */ panToBounds(elements: BoundsLike[], padding?: number | google.maps.Padding): void; panTo(position: Coord): void; getMapType(): string | google.maps.MapTypeId; setMapType(type: string | google.maps.MapTypeId): void; }