import { UpdateUserAnalyticDto } from './user-analytics.validation';
import { UserAnalytics } from './user-analytics.model';
import mongoose, { Model } from 'mongoose';
import { TUserAnalyticsProperty } from './user-analytics.interface';
export declare class UserAnalyticsService {
    private readonly userAnalyticsModel;
    constructor(userAnalyticsModel: Model<UserAnalytics>);
    findAll(): Promise<(mongoose.Document<unknown, {}, UserAnalytics, {}, {}> & UserAnalytics & {
        _id: mongoose.Types.ObjectId;
    } & {
        __v: number;
    })[]>;
    getUserAnalytics(query: {
        userId: string;
        startDate: string;
        endDate: string;
    }): Promise<{
        queryData: any[];
        queryStats: any;
        totalStats: any;
        last7DaysStats: any;
        last30DaysStats: any;
    }>;
    private prePopulateDateArray;
    private mergeData;
    findOneByUser(userId: string): Promise<mongoose.Document<unknown, {}, UserAnalytics, {}, {}> & UserAnalytics & {
        _id: mongoose.Types.ObjectId;
    } & {
        __v: number;
    }>;
    updateByuser(userId: string, updateUserAnalyticDto: UpdateUserAnalyticDto): Promise<mongoose.Document<unknown, {}, UserAnalytics, {}, {}> & UserAnalytics & {
        _id: mongoose.Types.ObjectId;
    } & {
        __v: number;
    }>;
    findById(id: string): Promise<mongoose.Document<unknown, {}, UserAnalytics, {}, {}> & UserAnalytics & {
        _id: mongoose.Types.ObjectId;
    } & {
        __v: number;
    }>;
    updateById(id: string, updateUserAnalyticDto: UpdateUserAnalyticDto): Promise<mongoose.Document<unknown, {}, UserAnalytics, {}, {}> & UserAnalytics & {
        _id: mongoose.Types.ObjectId;
    } & {
        __v: number;
    }>;
    incrementAnalytics(property: TUserAnalyticsProperty, userid: string, session?: mongoose.ClientSession): Promise<{
        success: boolean;
        message: string;
    }>;
}
