import { Coordinate } from './coordinate'; import { EventsKey } from './events'; import Event from './events/Event'; import Polygon from './geom/Polygon'; import BaseObject, { ObjectEvent } from './Object'; import { ProjectionLike } from './proj'; import Projection from './proj/Projection'; export interface Options { tracking?: boolean; trackingOptions?: PositionOptions; projection?: ProjectionLike; } export default class Geolocation extends BaseObject { constructor(opt_options?: Options); getAccuracy(): number | undefined; getAccuracyGeometry(): Polygon; getAltitude(): number | undefined; getAltitudeAccuracy(): number | undefined; getHeading(): number | undefined; getPosition(): Coordinate | undefined; getProjection(): Projection | undefined; getSpeed(): number | undefined; getTracking(): boolean; getTrackingOptions(): PositionOptions | undefined; setProjection(projection: ProjectionLike): void; setTracking(tracking: boolean): void; setTrackingOptions(options: PositionOptions): void; on(type: string | string[], listener: (p0: any) => void): EventsKey | EventsKey[]; once(type: string | string[], listener: (p0: any) => void): EventsKey | EventsKey[]; un(type: string | string[], listener: (p0: any) => void): void; on(type: 'change', listener: (evt: Event) => void): EventsKey; once(type: 'change', listener: (evt: Event) => void): EventsKey; un(type: 'change', listener: (evt: Event) => void): void; on(type: 'change:accuracy', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:accuracy', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:accuracy', listener: (evt: ObjectEvent) => void): void; on(type: 'change:accuracyGeometry', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:accuracyGeometry', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:accuracyGeometry', listener: (evt: ObjectEvent) => void): void; on(type: 'change:altitude', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:altitude', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:altitude', listener: (evt: ObjectEvent) => void): void; on(type: 'change:altitudeAccuracy', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:altitudeAccuracy', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:altitudeAccuracy', listener: (evt: ObjectEvent) => void): void; on(type: 'change:heading', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:heading', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:heading', listener: (evt: ObjectEvent) => void): void; on(type: 'change:position', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:position', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:position', listener: (evt: ObjectEvent) => void): void; on(type: 'change:projection', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:projection', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:projection', listener: (evt: ObjectEvent) => void): void; on(type: 'change:speed', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:speed', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:speed', listener: (evt: ObjectEvent) => void): void; on(type: 'change:tracking', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:tracking', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:tracking', listener: (evt: ObjectEvent) => void): void; on(type: 'change:trackingOptions', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'change:trackingOptions', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'change:trackingOptions', listener: (evt: ObjectEvent) => void): void; on(type: 'error', listener: (evt: any) => void): EventsKey; once(type: 'error', listener: (evt: any) => void): EventsKey; un(type: 'error', listener: (evt: any) => void): void; on(type: 'propertychange', listener: (evt: ObjectEvent) => void): EventsKey; once(type: 'propertychange', listener: (evt: ObjectEvent) => void): EventsKey; un(type: 'propertychange', listener: (evt: ObjectEvent) => void): void; }