import { PrismaService } from "../../../database/prisma/prisma.service";
export declare class TemplateService {
    private readonly prisma;
    private readonly logger;
    constructor(prisma: PrismaService);
    private registerHelpers;
    render(templateCode: string, variables: Record<string, any>): Promise<{
        subject: string;
        content: string;
    }>;
    create(data: {
        code: string;
        name: string;
        description?: string;
        channel: string;
        subject?: string;
        template: string;
        variables: string[];
        example?: any;
        priority?: string;
    }): Promise<{
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        description: string | null;
        isActive: boolean;
        channel: import("@prisma/client").$Enums.NotificationChannel;
        subject: string | null;
        template: string;
        variables: string[];
        example: import("@prisma/client/runtime/library").JsonValue | null;
        priority: import("@prisma/client").$Enums.NotificationPriority;
    }>;
    update(code: string, data: any): Promise<{
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        description: string | null;
        isActive: boolean;
        channel: import("@prisma/client").$Enums.NotificationChannel;
        subject: string | null;
        template: string;
        variables: string[];
        example: import("@prisma/client/runtime/library").JsonValue | null;
        priority: import("@prisma/client").$Enums.NotificationPriority;
    }>;
    delete(code: string): Promise<{
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        description: string | null;
        isActive: boolean;
        channel: import("@prisma/client").$Enums.NotificationChannel;
        subject: string | null;
        template: string;
        variables: string[];
        example: import("@prisma/client/runtime/library").JsonValue | null;
        priority: import("@prisma/client").$Enums.NotificationPriority;
    }>;
    findAll(channel?: string): Promise<{
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        description: string | null;
        isActive: boolean;
        channel: import("@prisma/client").$Enums.NotificationChannel;
        subject: string | null;
        template: string;
        variables: string[];
        example: import("@prisma/client/runtime/library").JsonValue | null;
        priority: import("@prisma/client").$Enums.NotificationPriority;
    }[]>;
    findByCode(code: string): Promise<{
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        description: string | null;
        isActive: boolean;
        channel: import("@prisma/client").$Enums.NotificationChannel;
        subject: string | null;
        template: string;
        variables: string[];
        example: import("@prisma/client/runtime/library").JsonValue | null;
        priority: import("@prisma/client").$Enums.NotificationPriority;
    }>;
    testRender(templateCode: string, variables: Record<string, any>): Promise<{
        subject: string;
        content: string;
    }>;
}
