import { OnModuleDestroy } from '@nestjs/common';
export interface LocationData {
    latitude: number;
    longitude: number;
    heading?: number;
    updatedAt: number;
}
export interface OngoingBookingData {
    bookingId: string;
    customerId: string;
    driverId: string;
    status: string;
    [key: string]: any;
}
export declare class RedisService implements OnModuleDestroy {
    private redis;
    constructor();
    set(key: string, value: string, ttl?: number): Promise<void>;
    get(key: string): Promise<string | null>;
    del(...keys: string[]): Promise<void>;
    sAdd(key: string, ...values: string[]): Promise<void>;
    getSocketId(user_id: string): Promise<string | null>;
    sMembers(key: string): Promise<string[]>;
    exists(key: string): Promise<boolean>;
    setJson<T>(key: string, value: T, ttl?: number): Promise<void>;
    getJson<T>(key: string): Promise<T | null>;
    setOngoingBooking(driver_id: string, payload: OngoingBookingData): Promise<void>;
    getOngoingBooking(driver_id: string): Promise<OngoingBookingData | null>;
    removeOngoingBooking(driver_id: string): Promise<void>;
    sRemMany(key: string, values: string[]): Promise<number>;
    removePendingLocationSync(driverIds: string[]): Promise<void>;
    setDriverLocation(driver_id: string, locationData: LocationData): Promise<void>;
    getDriverLocation(driver_id: string): Promise<LocationData | null>;
    setPendingLocationSync(driver_id: string): Promise<void>;
    getPendingLocationSync(): Promise<string[]>;
    lpush(key: string, ...values: string[]): Promise<void>;
    setProfile(user_id: string, profile: any): Promise<void>;
    getProfile(user_id: string): Promise<any>;
    setVehicleListing(vehicle_listing: any, serviceType?: string): Promise<void>;
    getVehicleListing(serviceType?: string): Promise<any>;
    invalidateVehicleListingCache(): Promise<void>;
    setStatsCache(driverId: string, stats: any): Promise<void>;
    getStatsCache(driverId: string): Promise<any>;
    setBannersCache(banners: any): Promise<void>;
    getBannersCache(): Promise<any>;
    invalidateBannersCache(): Promise<void>;
    setSession(session_id: string, data: any): Promise<void>;
    getSession(session_id: string): Promise<any>;
    invalidateSessionCache(session_id: string): Promise<void>;
    invalidateProfileCache(user_id: string): Promise<void>;
    private subRedis;
    publish(channel: string, message: string): Promise<void>;
    subscribe(channel: string, callback: (message: string) => void): Promise<void>;
    onModuleDestroy(): void;
}
