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';
export declare class CommonService {
    private readonly JwtService;
    private readonly model;
    private readonly configServices;
    private apnProvider;
    private userTopic;
    private vendorTopic;
    constructor(JwtService: JwtService, model: ModelsService, configServices: ConfigService);
    getUserLanguage(req?: any, userLanguage?: string): string;
    generate_token(token_data: any): Promise<string>;
    generateOTP(length?: number): string;
    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>;
    sendPushNotification: (fcm_tokens: any, data: any) => 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;
        };
    };
    generateSecureToken(): string;
    hashToken(token: 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;
    }>>;
    translateKey(languageCode: string, key: string, type?: I18nType, params?: Record<string, any>): string;
    processNotificationsWithTranslation(notifications: any[], languageCode: string): any[];
}
