import { z } from 'zod';
import type { TenantBranding } from '@learncard/email-templates';
export interface ContactMethod {
    type: 'email' | 'phone';
    value: string;
}
export interface Notification {
    contactMethod: ContactMethod;
    templateId: string;
    templateModel: Record<string, any>;
    messageStream?: string;
    branding?: Partial<TenantBranding>;
}
export declare const NotificationSchema: z.ZodObject<{
    contactMethod: z.ZodObject<{
        type: z.ZodEnum<{
            email: "email";
            phone: "phone";
        }>;
        value: z.ZodString;
    }, z.core.$strip>;
    templateId: z.ZodString;
    templateModel: z.ZodRecord<z.ZodString, z.ZodAny>;
    messageStream: z.ZodOptional<z.ZodString>;
    branding: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, z.core.$strip>;
export interface DeliveryService {
    send(notification: Notification): Promise<void>;
}
//# sourceMappingURL=delivery.service.d.ts.map