import type { EmailTemplateDetailDto, EmailTranslationDto } from '@/services/api/communicationsApi';
export declare const SUPPORTED_LANGUAGES: readonly ["fr", "en", "de", "it"];
export type SupportedLanguage = typeof SUPPORTED_LANGUAGES[number];
export interface TranslationBuffer {
    languageCode: string;
    subject: string;
    htmlBody: string;
    textBody: string;
    isExisting: boolean;
}
interface UseEmailTemplateEditorResult {
    template: EmailTemplateDetailDto | null;
    loading: boolean;
    saving: boolean;
    error: string | null;
    success: string | null;
    currentLanguage: string;
    setCurrentLanguage: (lang: string) => void;
    buffer: TranslationBuffer;
    isDirty: boolean;
    setSubject: (subject: string) => void;
    setHtmlBody: (htmlBody: string) => void;
    setTextBody: (textBody: string) => void;
    saveCurrentTranslation: () => Promise<void>;
    deleteCurrentTranslation: () => Promise<void>;
    applyAiTranslation: (translation: EmailTranslationDto) => void;
    reload: () => Promise<void>;
    clearMessages: () => void;
}
/**
 * Centralises every piece of state owned by the email template editor: template fetch,
 * current language, dirty edit buffer, save / delete actions, and AI translation
 * application. Keeps the page component thin (≈ 250 lines) and provides a single seam
 * for testing.
 */
export declare function useEmailTemplateEditor(templateId: string | undefined, initialLanguage?: string): UseEmailTemplateEditorResult;
export {};
//# sourceMappingURL=useEmailTemplateEditor.d.ts.map