import { Poi } from '@metromobilite/m-features/reference'; import { Observable } from 'rxjs'; import { modeStatus } from './services/favorite-component-mode.service'; export interface Favorite { type: string; data: FavoriteData; } export interface FavoriteData { [key: string]: any; } export interface PoiFavoriteData extends FavoriteData, Poi { } export interface ClustersFavoriteData extends PoiFavoriteData { line: string; } export interface HandlerOptions { [key: string]: any; } export interface FindOptions { [key: string]: any; } export interface FavoriteHandler { /** * The weight used to sort handlers. * Must be a number between 0 (first) and Number.MAX_SAFE_INTEGER - 1 (last) */ weight: number; matchType(data: FavoriteData): string | null; add(favorite: Favorite, options?: HandlerOptions): Observable; remove(favorite: Favorite, options?: HandlerOptions): Observable; edit(favorite: Favorite, options?: HandlerOptions): Observable; find(data: FavoriteData, options?: FindOptions): Favorite | null; } export interface FavoriteType { favoriteType: string; item?: any; mode?: modeStatus; } export interface LigneAlerte { id: string; active: boolean; }