import Redis from 'ioredis';
import { JwtService } from '@nestjs/jwt';
import { ModelsService } from 'src/models/models.service';
import { ConfigService } from '@nestjs/config';
import { Types } from 'mongoose';
import { I18nType } from './enums/i18n-type.enum';
import { RevenueModel } from 'src/user/schema/users.schema';
import { GlacierService } from '../uploads/upload.service';
export declare class CommonService {
    private readonly JwtService;
    private readonly model;
    private readonly configServices;
    private readonly uploadService;
    private apnProvider;
    private userTopic;
    private vendorTopic;
    readonly redis: Redis;
    readonly REDIS_TTL: number;
    readonly customBlocked: string[];
    constructor(JwtService: JwtService, model: ModelsService, configServices: ConfigService, uploadService: GlacierService);
    getUserLanguage(req?: any, userLanguage?: string): string;
    generate_token(token_data: any): Promise<string>;
    generateOTP(length?: number): any;
    isOTPExpired(expiresAt: number): boolean;
    getOTPExpiryTime(minutes?: number): number;
    generateReferralCode(length?: number): string;
    verify_token(token: any): Promise<any>;
    decode_token(token: any): Promise<any>;
    decodeTokenFromRequest(req: any): any;
    create_user_session(body: any, token_data: any, access_token: string): Promise<import("mongoose").Document<unknown, {}, import("../user/schema/session.schema").Sessions, {}> & import("../user/schema/session.schema").Sessions & Required<{
        _id: unknown;
    }> & {
        __v: number;
    }>;
    set_options: (pagination: any, limit: any) => Promise<any>;
    sendUserNotification: (userId: Types.ObjectId, title: string, type: string, message: string, sent_by?: any, data?: any) => Promise<void>;
    sendPushNotification: (fcm_tokens: any, data: any, save_notification?: boolean) => Promise<void>;
    sendSilentPushNotification: (fcm_tokens: any, data: any) => Promise<void>;
    sendHighPriorityNotificationOnANDROIDDevices: (deviceTokens: any, notificationData: any) => Promise<void>;
    sendPushNotificaitonOnIOSDevices(deviceToken: string, payload: any, userType?: string): Promise<void>;
    createRandomId(): string;
    validateEmail(email: string): boolean;
    validatePhone(phone: string): boolean;
    successResponse(message: string, data?: any, statusCode?: number): {
        status: string;
        message: string;
        data: any;
    };
    paginatedResponse(message: string, data: any[], total: number, page?: number, limit?: number): {
        status: string;
        message: string;
        data: any[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            hasNextPage: boolean;
            hasPrevPage: boolean;
        };
    };
    escapeRegexSearch(value: string): string;
    getSettings(): Promise<import("mongoose").FlattenMaps<import("mongoose").Document<unknown, {}, import("../settings/schema/settings.schema").Settings, {}> & import("../settings/schema/settings.schema").Settings & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }> & Required<{
        _id: Types.ObjectId;
    }>>;
    getWallet(user_id: any): Promise<import("mongoose").FlattenMaps<{
        user_id: Types.ObjectId;
        balance: number;
        total_earning: number;
        total_withdrawal: number;
        currency: string;
        is_deleted: boolean;
    }> & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    useWalletBalance(user_id: string, amount: number, order_id: string): Promise<(import("mongoose").Document<unknown, {}, import("../wallet/schema/wallet.schema").Wallet, {}> & import("../wallet/schema/wallet.schema").Wallet & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }) | null>;
    private sendVendorNotification;
    handleWalletPayment(payment: any, amount: number): Promise<void>;
    translateKey(languageCode: string, key: string, type?: I18nType): string;
    translateArrayItems(items: any[], languageCode: string, type: I18nType): any[];
    processNotificationsWithTranslation(notifications: any[], languageCode: string): any[];
    updateVendorRevenueModelOnSubscription(vendorId: string): Promise<{
        success: boolean;
        message: string;
        vendorId: string;
        revenue_model?: undefined;
        is_profile_complete?: undefined;
        error?: undefined;
    } | {
        success: boolean;
        message: string;
        vendorId: string;
        revenue_model: RevenueModel;
        is_profile_complete: any;
        error?: undefined;
    } | {
        success: boolean;
        message: string;
        vendorId: string;
        error: any;
        revenue_model?: undefined;
        is_profile_complete?: undefined;
    }>;
    handleUserSubscriptionExpiry(userId: Types.ObjectId): Promise<void>;
    generatePDF(trip_id: string): Promise<Buffer>;
    uploadPDF(pdfBuffer: Buffer, fileName: string): Promise<string>;
}
