import { Model } from 'sequelize-typescript';
import { MLocalVideoViewer, MLocalVideoViewerWithWatchSections, MVideo } from '../../types/models';
import { VideoStatsOverall, VideoStatsRetention, VideoStatsTimeserie, VideoStatsTimeserieMetric, WatchActionObject } from '../../../shared/models';
import { AttributesOnly } from '../../../shared/typescript-utils';
import { VideoModel } from '../video/video';
import { LocalVideoViewerWatchSectionModel } from './local-video-viewer-watch-section';
export declare class LocalVideoViewerModel extends Model<Partial<AttributesOnly<LocalVideoViewerModel>>> {
    createdAt: Date;
    startDate: Date;
    endDate: Date;
    watchTime: number;
    country: string;
    uuid: string;
    url: string;
    videoId: number;
    Video: VideoModel;
    WatchSections: LocalVideoViewerWatchSectionModel[];
    static loadByUrl(url: string): Promise<MLocalVideoViewer>;
    static loadFullById(id: number): Promise<MLocalVideoViewerWithWatchSections>;
    static getOverallStats(options: {
        video: MVideo;
        startDate?: string;
        endDate?: string;
    }): Promise<VideoStatsOverall>;
    static getRetentionStats(video: MVideo): Promise<VideoStatsRetention>;
    static getTimeserieStats(options: {
        video: MVideo;
        metric: VideoStatsTimeserieMetric;
        startDate: string;
        endDate: string;
    }): Promise<VideoStatsTimeserie>;
    toActivityPubObject(this: MLocalVideoViewerWithWatchSections): WatchActionObject;
}
//# sourceMappingURL=local-video-viewer.d.ts.map