import { type FunnelValidationDiagnostic } from './diagnosticOutput.js'; export type EmailTemplateVariableType = 'string' | 'number' | 'boolean'; export type EmailEventType = 'email_captured' | 'purchase_completed' | 'registration_completed'; export type EmailSequenceExitEventType = Exclude; export type EmailTemplateDraft = { subject: string; previewText: string | null; html: string; text: string; variables: Record; }; export type EmailTemplateFile = { id: string | null; slug: string; name: string; draft: EmailTemplateDraft; }; export type EmailSequenceTemplateStep = { key: string; delaySeconds: number; mode: 'template'; templateVersionId: string; variables: Record; personalizationEnabled?: boolean; }; export type EmailSequenceDirectStep = { key: string; delaySeconds: number; mode: 'direct'; subject: string; body: string; }; export type EmailSequenceStep = EmailSequenceTemplateStep | EmailSequenceDirectStep; export type EmailSequenceDraft = { triggerEventType: EmailEventType; funnelIds: string[]; steps: EmailSequenceStep[]; exitEventTypes: EmailSequenceExitEventType[]; lifecycleConsentRequired: boolean; unsubscribeEnabled: boolean; }; export type EmailSequenceFile = { id: string | null; slug: string; name: string; draft: EmailSequenceDraft; }; export type EmailFilesResult = { valid: boolean; diagnostics: FunnelValidationDiagnostic[]; templates: EmailTemplateFile[]; sequences: EmailSequenceFile[]; }; export declare function readEmailFiles(sourceDir: string): Promise; export declare function writeEmailTemplateFile(sourceDir: string, template: EmailTemplateFile): Promise; export declare function writeEmailSequenceFile(sourceDir: string, sequence: EmailSequenceFile): Promise; export declare function writeEmailFiles(input: { sourceDir: string; templates: EmailTemplateFile[]; sequences: EmailSequenceFile[]; }): Promise; export declare function replaceEmailFiles(input: { sourceDir: string; templates: EmailTemplateFile[]; sequences: EmailSequenceFile[]; }): Promise;