///
import { WrappedNativeFunctions, IGoogleMapsNativeObjectEmittingWrapper, BoundsLike, IGoogleMapsMouseEventsEmitter } from '@bespunky/angular-google-maps/core';
/**
* The supported triggers for opening the info window:
*
* `click` - The info window will open when the user clicks the attached element.
* `mouseOver` - The info window will open when the user enters the attached element with the mouse and close when the user exists the attached element.
* `doubleClick` - The info window will open when the user double clicks the attached element.
* `rightClick` - The info window will open when the user right clicks the attached element.
*/
export declare type InfoWindowTrigger = 'click' | 'mouseOver' | 'doubleClick' | 'rightClick';
/** A type for the native functions of an info window which should be wrapped. Used along with the extension interface for the wrapper. */
export declare type WrappedInfoWindowFunctions = WrappedNativeFunctions;
/**
* Represents the functionality that an info window should provide.
*
* @export
* @interface IGoogleMapsInfoWindow
* @extends {IGoogleMapsNativeObjectEmittingWrapper}
* @extends {WrappedInfoWindowFunctions}
*/
export interface IGoogleMapsInfoWindow extends IGoogleMapsNativeObjectEmittingWrapper, WrappedInfoWindowFunctions {
/**
* Gets info window's anchoring position.
*
* If the window is attached to an overlay, the returned position will be the last position where the window was opened.
*
* @returns {google.maps.LatLngLiteral} The current info window's position.
*/
getPosition(): google.maps.LatLngLiteral;
/**
* Sets the position of the info window to the center of the specified element.
*
* @param {BoundsLike} element The element which center will define the new position of the info window.
*/
setPosition(element: BoundsLike): void;
/**
* Gets the current trigger for the info window.
*
* @returns {InfoWindowTrigger} The current trigger for the info window.
*/
getTrigger(): InfoWindowTrigger;
/**
* Sets the trigger for the info window when attaching to an element. This implies specifying an attached element using `setAttachedTo()`.
* Default is `mouseOver`.
*
* @param {InfoWindowTrigger} trigger The event that will trigger the info window.
*/
setTrigger(trigger: InfoWindowTrigger): void;
/**
* Gets the delay in milliseconds after which the info window will be automatically closed.
*
* @returns {number} The delay in milliseconds after which the info window will be automatically closed.
*/
getCloseAfter(): number;
/**
* Sets the delay in milliseconds after which the info window will be automatically closed.
* Positive values will trigger automatic close delay when the info window opens.
* Zero and negative values will disable automatic close delay, leaving the info window open until the use manually closes it.
*
* @param {number} delay The delay in milliseconds after which the info window will be automatically closed.
*/
setCloseAfter(delay: number): void;
/**
* Gets the element the info window is attached to.
*
* @returns {IGoogleMapsMouseEventsEmitter} The element the info window is attached to.
*/
getAttachedTo(): IGoogleMapsMouseEventsEmitter;
/**
* Sets the element the info window will attach to.
* Attached elements must implement `IGoogleMapsMouseEventsEmitter`.
*
* When the info window is attached to an element, the info window will subscribe to the element's events (according to the current `trigger` value),
* then open the window automatically at the position the event was triggered at.
*
* @param {IGoogleMapsMouseEventsEmitter} element The element to attach the info window to.
* All overlays are by definition `IGoogleMapsMouseEventsEmitter` and can be pass here.
*/
setAttachedTo(element: IGoogleMapsMouseEventsEmitter): void;
/**
* Clears any attached element and unsubscribes from events.
*/
clearAttachedTo(): void;
/**
* Opens the info window at the center of the specified element.
*
* @param {BoundsLike} [position] (Optional) The position or bounds like object at which center the info window should open.
* If this is undefined, `getPosition()` will be used by default.
* If no position has been previously specified for the info window, it will default to the map's center.
*/
open(position?: BoundsLike): void;
/**
* Option shortcut. Enables/disables auto pan if the info window is out of map bounds.
* @see google.maps.InfoWindowOptions
*
* @param {boolean} disableAutoPan `true` to disable auto pan; otherwise `false`. Default is `false`.
*/
setDisableAutoPan(disableAutoPan: boolean): void;
/**
* Option shortcut. Sets the maximum width of the info window, regardless of content's width.
* @see google.maps.InfoWindowOptions
*
* @param {number} maxWidth The maximum width for tne info window.
*/
setMaxWidth(maxWidth: number): void;
/**
* Option shortcut. Sets the offset, in pixels, of the tip of the info window from the point on the map at whose geographical coordinates the info window is anchored.
* @see google.maps.InfoWindowOptions
*
* @param {google.maps.Size} pixelOffset The offset size.
*/
setPixelOffset(pixelOffset: google.maps.Size): void;
}