export interface EmailTemplateListDto {
    id: string;
    code: string;
    name: string;
    description: string | null;
    category: string;
    isSystem: boolean;
    isActive: boolean;
    applicationName: string | null;
    languages: string[];
    createdAt: string;
    updatedAt: string | null;
}
export interface EmailTemplateDetailDto {
    id: string;
    code: string;
    name: string;
    description: string | null;
    category: string;
    isSystem: boolean;
    isActive: boolean;
    applicationId: string | null;
    applicationName: string | null;
    variablesJson: string | null;
    translations: EmailTemplateTranslationDto[];
    createdAt: string;
    updatedAt: string | null;
}
export interface EmailTemplateTranslationDto {
    id: string;
    languageCode: string;
    subject: string;
    htmlBody: string;
    textBody: string | null;
}
export interface CreateEmailTemplateRequest {
    code: string;
    name: string;
    description?: string;
    category: string;
    applicationId?: string;
    variablesJson?: string;
}
export interface UpdateEmailTemplateRequest {
    name: string;
    description?: string;
    category: string;
    isActive: boolean;
    variablesJson?: string;
}
export interface CreateTranslationRequest {
    languageCode: string;
    subject: string;
    htmlBody: string;
    textBody?: string;
}
export interface UpdateTranslationRequest {
    subject: string;
    htmlBody: string;
    textBody?: string;
}
export interface PreviewTemplateRequest {
    languageCode: string;
    variables?: Record<string, string>;
}
export interface PreviewTemplateResponse {
    subject: string;
    htmlBody: string;
    textBody: string | null;
}
export interface WorkflowTriggerDto {
    id: string;
    code: string;
    name: string;
    triggerType: string;
    availableVariablesJson: string | null;
}
export interface WorkflowListDto {
    id: string;
    code: string;
    name: string;
    description: string | null;
    triggerName: string;
    triggerCode: string;
    isSystem: boolean;
    isActive: boolean;
    priority: number;
    applicationName: string | null;
    stepCount: number;
    tenantId: string | null;
    tenantName: string | null;
    createdAt: string;
    updatedAt: string | null;
}
export interface WorkflowDetailDto {
    id: string;
    code: string;
    name: string;
    description: string | null;
    triggerId: string;
    triggerName: string;
    triggerCode: string;
    triggerVariablesJson: string | null;
    isSystem: boolean;
    isActive: boolean;
    priority: number;
    applicationId: string | null;
    applicationName: string | null;
    tenantId: string | null;
    tenantName: string | null;
    steps: WorkflowStepDto[];
    createdAt: string;
    updatedAt: string | null;
}
export interface WorkflowStepDto {
    id: string;
    stepOrder: number;
    name: string;
    stepType: string;
    isActive: boolean;
    emailTemplateId: string | null;
    emailTemplateName: string | null;
    delayMinutes: number | null;
    configurationJson: string | null;
}
export interface CreateWorkflowRequest {
    code: string;
    name: string;
    description?: string;
    triggerId: string;
    priority?: number;
    applicationId?: string;
}
export interface UpdateWorkflowRequest {
    name: string;
    description?: string;
    triggerId: string;
    applicationId?: string;
    priority: number;
}
export interface CreateWorkflowStepRequest {
    name: string;
    stepType: string;
    emailTemplateId?: string;
    delayMinutes?: number;
    configurationJson?: string;
}
export interface UpdateWorkflowStepRequest {
    name: string;
    stepOrder: number;
    isActive: boolean;
    emailTemplateId?: string;
    delayMinutes?: number;
    configurationJson?: string;
}
export declare const communicationsApi: {
    emailTemplates: {
        getAll: (params?: {
            search?: string;
            category?: string;
            isActive?: boolean;
        }) => Promise<EmailTemplateListDto[]>;
        getById: (id: string) => Promise<EmailTemplateDetailDto>;
        getByCode: (code: string) => Promise<EmailTemplateDetailDto>;
        create: (data: CreateEmailTemplateRequest) => Promise<EmailTemplateDetailDto>;
        update: (id: string, data: UpdateEmailTemplateRequest) => Promise<EmailTemplateDetailDto>;
        delete: (id: string) => Promise<unknown>;
        activate: (id: string) => Promise<unknown>;
        deactivate: (id: string) => Promise<unknown>;
        preview: (id: string, data: PreviewTemplateRequest) => Promise<PreviewTemplateResponse>;
        testSend: (id: string, data: {
            email: string;
            languageCode: string;
            variables?: Record<string, string>;
        }) => Promise<{
            message: string;
        }>;
        getTranslation: (templateId: string, languageCode: string) => Promise<EmailTemplateTranslationDto>;
        createTranslation: (templateId: string, data: CreateTranslationRequest) => Promise<EmailTemplateTranslationDto>;
        updateTranslation: (templateId: string, languageCode: string, data: UpdateTranslationRequest) => Promise<EmailTemplateTranslationDto>;
    };
    workflows: {
        getAll: (params?: {
            search?: string;
            triggerId?: string;
            isActive?: boolean;
        }) => Promise<WorkflowListDto[]>;
        getById: (id: string) => Promise<WorkflowDetailDto>;
        create: (data: CreateWorkflowRequest) => Promise<WorkflowDetailDto>;
        update: (id: string, data: UpdateWorkflowRequest) => Promise<WorkflowDetailDto>;
        delete: (id: string) => Promise<unknown>;
        activate: (id: string) => Promise<unknown>;
        deactivate: (id: string) => Promise<unknown>;
        addStep: (workflowId: string, data: CreateWorkflowStepRequest) => Promise<WorkflowStepDto>;
        updateStep: (workflowId: string, stepId: string, data: UpdateWorkflowStepRequest) => Promise<WorkflowStepDto>;
        deleteStep: (workflowId: string, stepId: string) => Promise<unknown>;
        reorderSteps: (workflowId: string, stepOrder: string[]) => Promise<unknown>;
    };
    triggers: {
        getAll: () => Promise<WorkflowTriggerDto[]>;
    };
};
//# sourceMappingURL=communicationsApi.d.ts.map