/**
 * Tiny mustache-style template renderer.
 * Substitutes {{key}} occurrences with values from `vars`.
 * Missing keys are left as empty strings.
 */
export declare function renderTemplate(text: string, vars: Record<string, string | number | null | undefined>): string;
/** Variables exposed to the VISITOR_INVITE template. */
export interface VisitorInviteVars {
    visitor_name: string;
    visitor_email: string;
    visitor_mobile: string;
    visitor_id: string;
    visit_date: string;
    visit_time: string;
    visit_notes: string;
    reason_for_visit: string;
    host_name: string;
    host_email: string;
    visit_details: string;
    qr_code: string;
    approve_url: string;
    reject_url: string;
}
export declare const VISIT_DETAILS_SENTINEL = "__GP_VISIT_DETAILS_BLOCK__";
export declare const QR_CODE_SENTINEL = "__GP_QR_CODE_BLOCK__";
/** Sample values used for the preview button. */
export declare const VISITOR_INVITE_SAMPLE: VisitorInviteVars;
/** Default body the system seeds when no template exists. Constructed from
 * individual variables — admins customise it freely via the rich-text
 * editor, and the Insert Variable dropdown exposes each field so they can
 * rearrange the info-box rows. */
export declare const DEFAULT_VISITOR_INVITE: {
    subject: string;
    body: string;
};
/** Default body for the check-in confirmation email. */
export declare const DEFAULT_CHECK_IN_CONFIRMATION: {
    subject: string;
    body: string;
};
export declare const DEFAULT_APPROVER_REQUEST: {
    subject: string;
    body: string;
};
/** Default body for the 24h visit reminder. */
export declare const DEFAULT_VISITOR_REMINDER: {
    subject: string;
    body: string;
};
export declare const KNOWN_VISITOR_INVITE_KEYS: Array<keyof VisitorInviteVars>;
export declare const APPROVER_REQUEST_EXTRA_KEYS: Array<keyof VisitorInviteVars>;
//# sourceMappingURL=templates.d.ts.map