import { Observable } from 'rxjs'; import { Feature, GeoJsonObject } from 'geojson'; import { IOverlayByIdMetaData } from '../services/overlays.service'; import { IDateRange } from '../../core/models/multiple-overlays-source-config'; import { LoggerService } from '../../core/services/logger.service'; import { IOverlay, IOverlayError, IOverlaysFetchData, IResolutionRange } from './overlay.model'; import { IDataInputFilterValue } from '../../menu-items/cases/models/case.model'; export interface IFetchParams { limit: number; region: GeoJsonObject; sensors?: string[]; dataInputFilters: IDataInputFilterValue[]; timeRange: IDateRange; resolution?: IResolutionRange; types?: string[]; registeration?: string[]; } export interface IOverlayFilter { sensor: string; coverage: Feature; timeRange: IDateRange; } export interface IStartAndEndDate { startDate: string; endDate: string; } export declare function timeIntersection(whiteRange: IDateRange, blackRange: IDateRange): IDateRange; export declare function isFaulty(data: IOverlaysFetchData): boolean; export declare function mergeErrors(data: IOverlaysFetchData[]): IOverlayError[]; export declare function mergeOverlaysFetchData(data: IOverlaysFetchData[], limit: number, errors?: IOverlayError[]): IOverlaysFetchData; export declare abstract class BaseOverlaySourceProvider { protected loggerService: LoggerService; readonly sourceType: string; constructor(loggerService: LoggerService); buildFetchObservables(fetchParams: IFetchParams): Observable[]; fetchMultiple(fetchParams: IFetchParams): Observable; abstract fetch(fetchParams: IFetchParams): Observable; abstract getById(id: string, sourceType: string): Observable; getByIds(ids: IOverlayByIdMetaData[]): Observable; getThumbnailUrl(overlay: any, position: any): Observable; getThumbnailName(overlay: any): string; }