import { Transaction } from 'sequelize';
import { Model } from 'sequelize-typescript';
import { AttributesOnly } from '../../../shared/typescript-utils';
import { MActorDefault } from '../../types/models';
import { MVideoShareActor, MVideoShareFull } from '../../types/models/video';
import { ActorModel } from '../actor/actor';
import { VideoModel } from './video';
export declare class VideoShareModel extends Model<Partial<AttributesOnly<VideoShareModel>>> {
    url: string;
    createdAt: Date;
    updatedAt: Date;
    actorId: number;
    Actor: ActorModel;
    videoId: number;
    Video: VideoModel;
    static load(actorId: number | string, videoId: number | string, t?: Transaction): Promise<MVideoShareActor>;
    static loadByUrl(url: string, t: Transaction): Promise<MVideoShareFull>;
    static loadActorsByShare(videoId: number, t: Transaction): Promise<MActorDefault[]>;
    static loadActorsWhoSharedVideosOf(actorOwnerId: number, t: Transaction): Promise<MActorDefault[]>;
    static loadActorsByVideoChannel(videoChannelId: number, t: Transaction): Promise<MActorDefault[]>;
    static listAndCountByVideoId(videoId: number, start: number, count: number, t?: Transaction): Promise<{
        rows: VideoShareModel[];
        count: number;
    }>;
    static listRemoteShareUrlsOfLocalVideos(): Promise<string[]>;
    static cleanOldSharesOf(videoId: number, beforeUpdatedAt: Date): Promise<number>;
}
//# sourceMappingURL=video-share.d.ts.map