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>;
    onModuleDestroy(): void;
}
