import { Types } from 'mongoose';
import { DbService } from 'src/db/db.service';
import { CreateNotificationTemplateDto, UpdateNotificationTemplateDto } from './dto/notification-template.dto';
export declare const NOTIFICATION_LANGUAGES: readonly ["english", "hindi", "french", "spanish"];
export type NotificationLanguage = (typeof NOTIFICATION_LANGUAGES)[number];
export declare class NotificationTemplateService {
    private readonly model;
    constructor(model: DbService);
    create(dto: CreateNotificationTemplateDto): Promise<import("mongoose").Document<unknown, {}, import("mongoose").Document<unknown, {}, import("./schema/notification-template.schema").NotificationTemplate, {}, {}> & import("./schema/notification-template.schema").NotificationTemplate & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }, {}, {}> & import("mongoose").Document<unknown, {}, import("./schema/notification-template.schema").NotificationTemplate, {}, {}> & import("./schema/notification-template.schema").NotificationTemplate & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    } & Required<{
        _id: Types.ObjectId;
    }>>;
    findAll(key?: string, page?: number, limit?: number): Promise<{
        data: (import("mongoose").FlattenMaps<import("mongoose").Document<unknown, {}, import("./schema/notification-template.schema").NotificationTemplate, {}, {}> & import("./schema/notification-template.schema").NotificationTemplate & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        }> & Required<{
            _id: Types.ObjectId;
        }>)[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    findOne(id: string): Promise<import("mongoose").FlattenMaps<import("mongoose").Document<unknown, {}, import("./schema/notification-template.schema").NotificationTemplate, {}, {}> & import("./schema/notification-template.schema").NotificationTemplate & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }> & Required<{
        _id: Types.ObjectId;
    }>>;
    update(id: string, dto: UpdateNotificationTemplateDto): Promise<import("mongoose").Document<unknown, {}, import("mongoose").Document<unknown, {}, import("./schema/notification-template.schema").NotificationTemplate, {}, {}> & import("./schema/notification-template.schema").NotificationTemplate & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }, {}, {}> & import("mongoose").Document<unknown, {}, import("./schema/notification-template.schema").NotificationTemplate, {}, {}> & import("./schema/notification-template.schema").NotificationTemplate & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    } & Required<{
        _id: Types.ObjectId;
    }>>;
    getByKeyAndLanguage(key: string, language: NotificationLanguage): Promise<{
        key: string;
        title: string;
        body: string;
        variables: string[];
    }>;
}
