import IoRedis, { RedisOptions } from 'ioredis';
declare class Redis {
    private static instance;
    private initialized;
    private connected;
    private client;
    private prefix;
    private constructor();
    init(): void;
    static getRedisClientOptions(connectionName?: string, options?: RedisOptions): RedisOptions;
    getClient(): IoRedis;
    getPrefix(): string;
    isConnected(): boolean;
    setResetPasswordVerificationString(userId: number): Promise<string>;
    setCreatePasswordVerificationString(userId: number): Promise<string>;
    removePasswordVerificationString(userId: number): Promise<number>;
    getResetPasswordVerificationString(userId: number): Promise<string>;
    setTwoFactorRequest(userId: number, otpSecret: string): Promise<string>;
    getTwoFactorRequestToken(userId: number, requestToken: string): Promise<string>;
    setVerifyEmailVerificationString(userId: number): Promise<string>;
    getVerifyEmailLink(userId: number): Promise<string>;
    setContactFormIp(ip: string): Promise<void>;
    doesContactFormIpExist(ip: string): Promise<boolean>;
    setIPVideoView(ip: string, videoUUID: string): Promise<void>;
    doesVideoIPViewExist(ip: string, videoUUID: string): Promise<boolean>;
    setTrackerBlockIP(ip: string): Promise<void>;
    doesTrackerBlockIPExist(ip: string): Promise<boolean>;
    addVideoViewStats(videoId: number): Promise<[number, number]>;
    getVideoViewsStats(videoId: number, hour: number): Promise<number>;
    listVideosViewedForStats(hour: number): Promise<number[]>;
    deleteVideoViewsStats(videoId: number, hour: number): Promise<[number, number]>;
    addLocalVideoView(videoId: number): Promise<[number, number]>;
    getLocalVideoViews(videoId: number): Promise<number>;
    listLocalVideosViewed(): Promise<number[]>;
    deleteLocalVideoViews(videoId: number): Promise<[number, number]>;
    getLocalVideoViewer(options: {
        key?: string;
        ip?: string;
        videoId?: number;
    }): Promise<any>;
    setLocalVideoViewer(ip: string, videoId: number, object: any): Promise<[number, void]>;
    listLocalVideoViewerKeys(): Promise<string[]>;
    deleteLocalVideoViewersKeys(key: string): Promise<[number, number]>;
    setUploadSession(uploadId: string, response?: {
        video: {
            id: number;
            shortUUID: string;
            uuid: string;
        };
    }): Promise<void>;
    doesUploadSessionExist(uploadId: string): Promise<boolean>;
    getUploadSession(uploadId: string): Promise<any>;
    deleteUploadSession(uploadId: string): Promise<number>;
    addAPUnavailability(url: string): Promise<number>;
    private generateLocalVideoViewsKeys;
    private generateLocalVideoViewerKeys;
    private generateVideoViewStatsKeys;
    private generateResetPasswordKey;
    private generateTwoFactorRequestKey;
    private generateVerifyEmailKey;
    private generateIPViewKey;
    private generateTrackerBlockIPKey;
    private generateContactFormKey;
    private generateAPUnavailabilityKey;
    private getValue;
    private getSet;
    private addToSet;
    private deleteFromSet;
    private deleteKey;
    private getObject;
    private setObject;
    private setValue;
    private removeValue;
    private increment;
    private exists;
    private setExpiration;
    static get Instance(): Redis;
}
export { Redis };
//# sourceMappingURL=redis.d.ts.map