67 lines
1.6 KiB
TypeScript
67 lines
1.6 KiB
TypeScript
// src/types/ymaps.d.ts
|
|
declare namespace ymaps {
|
|
type ReadyCallback = () => void;
|
|
|
|
interface IEventEmitter {
|
|
add: (eventName: string, handler: (...args: any[]) => any) => void;
|
|
remove?: (eventName: string, handler: (...args: any[]) => any) => void;
|
|
fire?: (eventName: string, eventObject?: any) => void;
|
|
}
|
|
|
|
interface IGeoObjectCollection {
|
|
add: (geoObject: any) => void;
|
|
remove?: (geoObject: any) => void;
|
|
removeAll?: () => void;
|
|
}
|
|
|
|
interface MapOptions {
|
|
center?: [number, number];
|
|
zoom?: number;
|
|
controls?: string[];
|
|
[key: string]: any;
|
|
}
|
|
|
|
class Map implements IEventEmitter {
|
|
constructor(container: HTMLElement | string, options?: MapOptions);
|
|
|
|
events: IEventEmitter;
|
|
geoObjects: IGeoObjectCollection;
|
|
|
|
setCenter(center: [number, number] | number[], zoom?: number): void;
|
|
getCenter(): [number, number];
|
|
|
|
setZoom(zoom: number, options?: any): void;
|
|
getZoom(): number;
|
|
|
|
destroy(): void;
|
|
}
|
|
|
|
interface PlacemarkOptions {
|
|
iconLayout?: string;
|
|
iconImageHref?: string;
|
|
iconImageSize?: [number, number];
|
|
iconImageOffset?: [number, number];
|
|
iconColor?: string;
|
|
draggable?: boolean;
|
|
[key: string]: any;
|
|
}
|
|
|
|
class Placemark implements IEventEmitter {
|
|
constructor(coords: [number, number] | number[], properties?: any, options?: PlacemarkOptions);
|
|
properties: any;
|
|
events: IEventEmitter;
|
|
}
|
|
|
|
function ready(callback: ReadyCallback): void;
|
|
}
|
|
|
|
declare global {
|
|
interface Window {
|
|
ymaps?: typeof ymaps;
|
|
}
|
|
}
|
|
|
|
declare module "ymaps" {
|
|
export = ymaps;
|
|
}
|