/** * Template Validation Utility * * Validates custom templates to ensure they include all required parameters. * Provides clear error messages for missing parameters. */ import { TemplateType, CustomTemplateDefinition } from '../interfaces/template.interface'; /** * Required parameters for each template type * * Maps template types to their required Handlebars variables. */ export declare const TEMPLATE_REQUIRED_PARAMS: Record; /** * Optional parameters available to all templates * * These can be used but are not required. * Injected by the template engine at runtime if available. */ export declare const TEMPLATE_OPTIONAL_PARAMS: string[]; /** * Validate template content for required parameters * * Scans template HTML/text for required Handlebars variables. * Throws error if any required parameters are missing. * * @param templateType - Type of template being validated * @param templateContent - HTML or text content to validate * @throws {NAuthException} If required parameters are missing * * @example * ```typescript * validateTemplateParams( * TemplateType.VERIFICATION, * '{{code}} {{link}} {{expiryMinutes}}' * ); // OK * * validateTemplateParams( * TemplateType.VERIFICATION, * '{{code}}' * ); // Throws: Missing required parameters: link, expiryMinutes * ``` */ export declare function validateTemplateParams(templateType: TemplateType | string, templateContent: string): void; /** * Validate custom template definition * * Ensures template definition is valid: * - Has either htmlPath OR html content * - Contains all required parameters for template type * * @param templateType - Type of template being validated * @param definition - Template definition to validate * @param templateContent - Already loaded template content (if available) * @throws {NAuthException} If template definition is invalid * * @example * ```typescript * validateCustomTemplate(TemplateType.VERIFICATION, { * htmlPath: './verification.html.hbs' * }); * ``` */ export declare function validateCustomTemplate(templateType: TemplateType | string, definition: CustomTemplateDefinition, templateContent?: string): void; /** * Get help text for template parameters * * Returns human-readable list of required and optional parameters * for a specific template type. * * @param templateType - Template type * @returns Help text with parameter information * * @example * ```typescript * console.log(getTemplateParamsHelp(TemplateType.VERIFICATION)); * // Output: * // Required parameters: * // - {{code}}: Verification code * // - {{link}}: Verification link * // - {{expiryMinutes}}: Code expiry time * // Optional parameters: * // - {{firstName}}, {{lastName}}, {{userName}}, {{appName}}, etc. * ``` */ export declare function getTemplateParamsHelp(templateType: TemplateType): string; //# sourceMappingURL=template.validator.d.ts.map