import { SchedulerRegistry } from "@nestjs/schedule"; import { ConfigService } from "@nestjs/config"; import { StateService } from "../../../common/services/StateService"; import { NetworkService } from "../../../common/services/NetworkService"; import { QueryService } from "../../../common/services/QueryService"; import { LogService } from "../../../common/services/LogService"; import { AssetDocument, AssetModel } from "../../../discovery/models/AssetSchema"; import { ActivityModel } from "../../../users/models/ActivitySchema"; import { StatisticsModel } from "../../models/StatisticsSchema"; import { StatisticsCommand, StatisticsCommandOptions } from "../StatisticsCommand"; import { ScoreSchedulerConfig } from "../../../common/models/StatisticsConfig"; import { LeaderboardAggregationStateData } from "../../models/LeaderboardAggregationStateData"; export declare abstract class LeaderboardAggregation extends StatisticsCommand { protected readonly model: StatisticsModel; protected readonly assetModel: AssetModel; protected readonly activityModel: ActivityModel; protected readonly schedulerRegistry: SchedulerRegistry; protected readonly stateService: StateService; protected readonly queriesService: QueryService; protected readonly networkService: NetworkService; protected readonly configService: ConfigService; protected readonly logService: LogService; private readonly TYPE; protected periodFormat: string; private lastExecutedAt; constructor(model: StatisticsModel, assetModel: AssetModel, activityModel: ActivityModel, schedulerRegistry: SchedulerRegistry, stateService: StateService, queriesService: QueryService, networkService: NetworkService, configService: ConfigService, logService: LogService); protected get command(): string; protected get signature(): string; protected getStateData(): LeaderboardAggregationStateData; abstract runAsScheduler(): void; runScheduler(): Promise; aggregate(options?: StatisticsCommandOptions): Promise; protected abstract createQueryDates(dateNow: Date): { startDate: Date; endDate: Date; }; protected abstract getNextPeriod(date: Date): string; protected abstract getPrevPeriod(date: Date): string; protected get config(): ScoreSchedulerConfig; private createAggregationQuery; }