import { InjectionToken } from '@angular/core'; import { Observable } from 'rxjs'; import { RealTimeDataItem } from '../models/realtime-data-item.model'; import { Poi } from '@metromobilite/m-features/reference'; import { RealtimeDataService } from '../realtime-data.service'; import { StopTime } from '../models/cluster-stoptimes.model'; import { Line } from '@metromobilite/m-features/core'; export interface RealtimeDataStrategy { name: string; load(poi: Poi, originalItems: RealTimeDataItem[], lines: Line[]): Observable<[StopTime[], boolean]>; preTransform(poi: Poi, items: RealTimeDataItem[], stopTimes: StopTime[]): void; sort(a: RealTimeDataItem, b: RealTimeDataItem): number; postTransform(poi: Poi, items: RealTimeDataItem[], stopTimes: StopTime[]): void; } export declare abstract class RealtimeDataStrategyBase implements RealtimeDataStrategy { protected realtimeDataService: RealtimeDataService; name: string; constructor(realtimeDataService: RealtimeDataService); load(poi: Poi, originalItems: RealTimeDataItem[], lines: Line[]): Observable<[StopTime[], boolean]>; preTransform(poi: Poi, items: RealTimeDataItem[], stopTimes: StopTime[]): void; abstract sort(a: RealTimeDataItem, b: RealTimeDataItem): number; postTransform(poi: Poi, items: RealTimeDataItem[], stopTimes: StopTime[]): void; } export declare const REALTIME_DATA_STRATEGY: InjectionToken;