import { ThingStateService } from './thingState.service'; export declare abstract class BucketBase { protected readonly thingStateService: ThingStateService; abstract isCoupledThing(): any; protected readonly MAX_HOURS_RECALC = 1; protected readonly DATE_BASE_TO_RECALCULATE = "2000-01-01T00:00:00.000Z"; constructor(thingStateService: ThingStateService); findOneById(bucketId: string): Promise; createOrUpdate(filter: any, query: any): Promise; private setTrackExtraData; generateBucketFilter(currentTrack: any, isoDate: any): any; getISODate(currentTrack: any): Date; findOneByDateLessOrEqual(idThing: any, date: any): Promise; findOneByDateLessOrEqualWithOnlyLastTrack(idThing: any, date: any): Promise; findOneByDateLess(idThing: any, date: any): Promise; findNextBucketsByDate(idThing: any, date: any): Promise; findNextBucketsIdsByDateExcludeCurrentTime(idThing: any, date: any): Promise; findLastTrack(idThing: any): Promise; insertionType(currentTrack: any): Promise<1 | 0 | -1>; generateBucketQuery(currentTrack: any, lastBucket: any, date: any): Promise<{ $push: { collection: any; }; $set: { metadata: any; total: number; }; }>; generateBucketQueryNotOrdered(currentTrack: any, lastBucket: any, date: any): Promise<{ $push: { collection: { $each: any[]; $sort: { trackTimestamp: number; }; }; }; $set: { total: any; recalc: boolean; metadata?: undefined; }; } | { $push: { collection: { $each: any[]; $sort: { trackTimestamp: number; }; }; }; $set: { metadata: any; total: any; recalc: boolean; }; }>; recalcFromBucket(bucket: any): Promise; getPreviousTrack(idThing: string, trackTimestamp: number): Promise; getNextTrack(idThing: string, trackTimestamp: number): Promise; protected recalcBucket(bucket: any, previousTrack: any, statesMap: any): Promise; protected recalcExternalMetadata(idThing: string, bucketDate: Date, metadata: any, tracks: any[]): Promise; protected getPreviousMetadata(previousTrack: any): Promise; recalcBuckets(): Promise; findBucketsByDateRangeAndThingId(thingId: string, dateFrom: Date, dateTo: Date, extraFilters?: any, state?: boolean): Promise; generateBucket(bucket: any, lastTrack: any, trackList: any): Promise; protected generateMetadata(bucket: any, lastTrack: any, trackList: any[]): Promise; protected processBuckets(buckets: any, dateFrom: any, dateTo: any, state: any, idThing: any): Promise; protected getLastTrack(bucket: any): any; protected extractFirstBucket(buckets: any): any; protected extractLastBucket(buckets: any): any; protected getTracksByDate(bucket: any, date: any, isLess: any, state: any): any[]; protected filterCollectionByFromAndToDates(bucket: any, from: any, to: any): any[]; protected removeMinutesAndSecondsOnDate(date: Date): Date; protected updateExtraMetadata(lastBucket: any, metadata: any, lastTrack: any): void; protected calculateMetadataBase(lastBucket: any, metadata: any, previousTrack: any, trackList: any[], publishMessageToWorked?: boolean): Promise; getMetadataByThingAndDateRange(idThing: string, from: Date, to: Date, extraFilters: any, recalcLastBucketWithToDate?: boolean, projection?: any): Promise; private getExtraTracksForMetadata; private validateDateFromTo; protected getBucketsMetadataByThingAndDateRange(idThing: string, from: Date, to: Date, extraFilters: any, projection: any): Promise; protected sameDateAndHour(firstDate: Date, secondDate: Date): boolean; protected getBucketByDateAndThing(idThing: string, date: Date, extraFilters?: any): Promise; getTrackByDateAndThingId(idThing: any, dateLong: any): Promise; protected getBucketByDateLessOrEqualAndThing(idThing: any, date: any, extraFilters: any): Promise; protected getBucketByDateGreaterOrEqualAndThing(idThing: any, date: any, extraFilters: any): Promise; findLastTrackBeforeTimestamp(thing: string, to: any): Promise; protected abstract getInitMetadata(): any; protected abstract calculateMetadata(metadata: any, lastTrack: any, trackList: any, publishMessageToWorked: any): any; protected abstract getCollection(): any; protected getStatesMappedByEventTypeId(idThing: string): Promise; getBucketTracksLTEorGTEByTimestamp(idThing: string, timestamp: number, lte?: boolean): Promise; getIntervalExtremeMetatada(idThing: string, timestamp: number, intervalStart?: boolean): Promise; getSameBucketMetadata(idThing: string, from: number, to: number): Promise; getMetadataAggregationByCursor(idThing: string, from: number, to: number, metadataProjection: any, aggregationFunction: any, aggregationFunctionExtraParams: any, result: any): Promise; findTracksCursor(idThing: string, from: number, to: number, extraMatchBucketQuery: any[], extraMatchTrackQuery: any[], trackProjection: any, trackSort?: any): Promise; protected calculateDistance(track: any, lastTrack: any): number; protected calculateRunningSeconds(track: any, lastTrack: any): number; protected calculateRunningMovingSeconds(track: any, lastTrack: any): number; protected calculateConsumption(track: any, lastTrack: any, distanceKM: number, timeSeconds: number): number; protected getConsumptionRange(ranges: any, value: any): number; protected getWorkedAreaWidth(track: any): number; protected getWorkedAreaState(): string[]; protected calculateWorkedArea(track: any, lastTrack: any, distance: number, currentWorked: any[], driversMetadata: any[], workFrontsMetadata: any[], publishMessageToWorked: boolean): any; protected publishMessageToWorked(activity: any): void; protected countEvents(currentTrack: any, events: any): any; protected calcAverageRPM(metadata: any, currentTrack: any): any; protected calcStatesTimes(metadata: any, currentTrack: any, lastTrack: any): { statesTime: any; totalStatesTime: any; availableTime: any; }; protected calcStatesTimesByActivities(metadata: any, currentTrack: any, lastTrack: any): any; protected calcAverageSpeed(metadata: any, currentTrack: any): { statesAverageSpeed: any; workingStateAverageSpeed: any; }; protected calcDriveUnitMetadata(metadata: any, currentTrack: any, lastTrack: any, currentDriverData: any, lastDriverData: any, currentWorkFrontData: any, lastWorkFrontData: any): any; protected updateDriveUnitCurrentMetadata(metadatas: any[], currentData: any, idField: string): any[]; protected updateDriveUnitLastMetadata(metadatas: any[], lastData: any, idField: string): any[]; protected calcDriverMetadata(metadata: any, currentTrack: any, lastTrack: any): any; protected calcWorkFrontMetadata(metadata: any, currentTrack: any, lastTrack: any): { workFrontsMetadata: any; currentWorkFrontData: { workFrontId: any; rpm: any; statesSpeed: any; workingStateSpeed: any; speed: any; }; lastWorkFrontData: { workFrontId: any; statesTime: {}; statesTimeByActivities: {}; availableTime: any; distance: any; }; }; protected getSummaryMetadataInit(idField: string, id: string, workedMetadata?: boolean, statesTimeByActivities?: boolean): any; }