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 EmailVariableDto {
    name: string;
    description: string | null;
    category: string;
    type: string | null;
    sampleValue: string | null;
}
export interface EmailTemplateVariablesDto {
    system: EmailVariableDto[];
    template: EmailVariableDto[];
}
export interface PreviewRenderedRequest {
    languageCode: string;
    sampleVariables?: Record<string, unknown>;
    darkMode?: boolean;
}
export interface EmailRenderedPreviewResponse {
    subject: string;
    htmlBody: string;
    textBody: string | null;
}
export interface SendTestRequest {
    languageCode: string;
    recipientEmail?: string;
}
export interface SendTestResult {
    sent: boolean;
    recipient: string;
    warning: string | null;
}
export interface TranslateEmailTemplateRequest {
    sourceLanguageCode: string;
    targetLanguageCode: string;
    tone?: string;
}
export interface EmailTranslationDto {
    subject: string;
    htmlBody: string;
    textBody: string | null;
    confidence: number;
    sourceLanguage: string | null;
    targetLanguage: string | null;
}
export interface BulkTranslateEmailTemplateRequest {
    sourceLanguageCode: string;
    targetLanguageCodes: string[];
    tone?: string;
}
export interface LanguageTranslationOutcome {
    languageCode: string;
    success: boolean;
    translation: EmailTranslationDto | null;
    error: string | null;
}
export interface BulkTranslationResult {
    results: LanguageTranslationOutcome[];
}
export type WorkflowTriggerCategory = 'Lifecycle' | 'BusinessEvent' | 'Manual' | 'Scheduled' | 'External' | 'SubWorkflow';
export type WorkflowActionCategory = 'Communications' | 'Data' | 'FlowControl' | 'External';
export type WorkflowExecutionStatus = 'Pending' | 'Running' | 'Completed' | 'Failed' | 'PartiallyCompleted' | 'Cancelled' | 'WaitingForResume' | 'Compensating';
export type WorkflowStepExecutionStatus = 'Pending' | 'Running' | 'Completed' | 'Failed' | 'Skipped' | 'Retrying' | 'Compensated';
export type WorkflowApprovalStatus = 'Pending' | 'Approved' | 'Rejected' | 'Expired' | 'Cancelled';
export interface WorkflowTriggerDto {
    id: string;
    code: string;
    name: string;
    description: string | null;
    category: WorkflowTriggerCategory;
    entityType: string | null;
    sourceModule: string | null;
    inputSchemaJson: string;
    isSystem: boolean;
    isActive: boolean;
}
export interface WorkflowActionDefinitionDto {
    id: string;
    code: string;
    category: WorkflowActionCategory;
    name: string;
    description: string | null;
    inputSchemaJson: string;
    outputSchemaJson: string;
    version: string;
    isSystem: boolean;
    isActive: boolean;
}
export interface WorkflowListDto {
    id: string;
    code: string;
    name: string;
    description: string | null;
    isActive: boolean;
    isSystem: boolean;
    priority: number;
    stepCount: number;
    bindingCount: number;
    applicationId: string | null;
    tenantId: string | null;
    createdAt: string;
    updatedAt: string | null;
}
export interface WorkflowStepDto {
    id: string;
    workflowId: string;
    stepOrder: number;
    name: string;
    actionCode: string;
    isActive: boolean;
    inputJson: string;
    nextOnSuccessStepId: string | null;
    nextOnFailureStepId: string | null;
    retryPolicyJson: string | null;
    compensationActionJson: string | null;
}
export interface WorkflowTriggerBindingDto {
    id: string;
    workflowId: string;
    triggerId: string;
    triggerCode: string;
    triggerName: string;
    triggerCategory: WorkflowTriggerCategory;
    filterExpression: string | null;
    priority: number;
    isActive: boolean;
}
export interface WorkflowDetailDto {
    id: string;
    code: string;
    name: string;
    description: string | null;
    isActive: boolean;
    isSystem: boolean;
    priority: number;
    entryStepId: string | null;
    applicationId: string | null;
    tenantId: string | null;
    steps: WorkflowStepDto[];
    bindings: WorkflowTriggerBindingDto[];
    createdAt: string;
    updatedAt: string | null;
}
export interface WorkflowExecutionListDto {
    id: string;
    workflowId: string;
    workflowCode: string;
    triggerCode: string;
    status: WorkflowExecutionStatus;
    startedAt: string;
    completedAt: string | null;
    executedSteps: number;
    totalSteps: number;
    userId: string | null;
    userEmail: string | null;
    errorMessage: string | null;
}
export interface WorkflowStepExecutionDto {
    id: string;
    stepId: string;
    stepOrder: number;
    stepName: string;
    actionCode: string;
    status: WorkflowStepExecutionStatus;
    startedAt: string;
    completedAt: string | null;
    attemptNumber: number;
    inputJson: string | null;
    outputJson: string | null;
    errorMessage: string | null;
}
export interface WorkflowExecutionDetailDto {
    id: string;
    workflowId: string;
    workflowCode: string;
    triggerId: string;
    triggerCode: string;
    status: WorkflowExecutionStatus;
    startedAt: string;
    completedAt: string | null;
    executedSteps: number;
    totalSteps: number;
    variablesJson: string | null;
    stateSnapshotJson: string | null;
    currentStepId: string | null;
    language: string;
    userId: string | null;
    userEmail: string | null;
    errorMessage: string | null;
    idempotencyKey: string | null;
    parentExecutionId: string | null;
    correlationId: string | null;
    engineVersion: string;
    stepExecutions: WorkflowStepExecutionDto[];
}
export interface WorkflowApprovalRequestDto {
    id: string;
    executionId: string;
    stepId: string;
    title: string;
    description: string | null;
    approverUserIdsJson: string | null;
    approverRolesJson: string | null;
    status: WorkflowApprovalStatus;
    expiresAt: string | null;
    decidedAt: string | null;
    decidedByUserId: string | null;
    decidedByUserEmail: string | null;
    decisionComment: string | null;
    createdAt: string;
}
export interface CreateWorkflowRequest {
    code: string;
    name: string;
    description?: string;
    applicationId?: string;
    priority?: number;
}
export interface UpdateWorkflowRequest {
    name: string;
    description?: string;
    applicationId?: string;
    priority: number;
}
export interface AddWorkflowStepRequest {
    name: string;
    actionCode: string;
    inputJson?: string;
    nextOnSuccessStepId?: string;
    nextOnFailureStepId?: string;
    retryPolicyJson?: string;
    compensationActionJson?: string;
}
export interface UpdateWorkflowStepRequest {
    name: string;
    actionCode: string;
    inputJson?: string;
    isActive: boolean;
    nextOnSuccessStepId?: string;
    nextOnFailureStepId?: string;
    retryPolicyJson?: string;
    compensationActionJson?: string;
}
export interface ReorderStepsRequest {
    stepIds: string[];
}
export interface CreateBindingRequest {
    triggerId: string;
    filterExpression?: string;
    priority?: number;
    isActive?: boolean;
}
export interface UpdateBindingRequest {
    filterExpression?: string;
    priority: number;
    isActive: boolean;
}
export interface ExecuteWorkflowRequest {
    variables?: Record<string, unknown>;
    language?: string;
}
export interface ApprovalDecisionRequest {
    comment?: 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>;
        previewRendered: (id: string, data: PreviewRenderedRequest) => Promise<EmailRenderedPreviewResponse>;
        sendTest: (id: string, data: SendTestRequest) => Promise<SendTestResult>;
        getVariables: (id: string) => Promise<EmailTemplateVariablesDto>;
        aiTranslate: (id: string, data: TranslateEmailTemplateRequest) => Promise<EmailTranslationDto>;
        aiTranslateBulk: (id: string, data: BulkTranslateEmailTemplateRequest) => Promise<BulkTranslationResult>;
        getTranslation: (templateId: string, languageCode: string) => Promise<EmailTemplateTranslationDto>;
        createTranslation: (templateId: string, data: CreateTranslationRequest) => Promise<EmailTemplateTranslationDto>;
        updateTranslation: (templateId: string, languageCode: string, data: UpdateTranslationRequest) => Promise<EmailTemplateTranslationDto>;
        deleteTranslation: (templateId: string, languageCode: string) => Promise<unknown>;
    };
    workflows: {
        getAll: (params?: {
            search?: string;
            isActive?: boolean;
            applicationId?: string;
        }) => Promise<WorkflowListDto[]>;
        getById: (id: string) => Promise<WorkflowDetailDto>;
        create: (data: CreateWorkflowRequest) => Promise<WorkflowDetailDto>;
        update: (id: string, data: UpdateWorkflowRequest) => Promise<void>;
        delete: (id: string) => Promise<unknown>;
        activate: (id: string) => Promise<unknown>;
        deactivate: (id: string) => Promise<unknown>;
        execute: (id: string, data?: ExecuteWorkflowRequest) => Promise<void>;
        addStep: (workflowId: string, data: AddWorkflowStepRequest) => Promise<WorkflowStepDto>;
        updateStep: (workflowId: string, stepId: string, data: UpdateWorkflowStepRequest) => Promise<void>;
        deleteStep: (workflowId: string, stepId: string) => Promise<unknown>;
        reorderSteps: (workflowId: string, stepIds: string[]) => Promise<unknown>;
        createBinding: (workflowId: string, data: CreateBindingRequest) => Promise<WorkflowTriggerBindingDto>;
        updateBinding: (workflowId: string, bindingId: string, data: UpdateBindingRequest) => Promise<void>;
        deleteBinding: (workflowId: string, bindingId: string) => Promise<unknown>;
        getExecutions: (workflowId: string, params?: {
            status?: WorkflowExecutionStatus;
            since?: string;
            page?: number;
            pageSize?: number;
        }) => Promise<WorkflowExecutionListDto[]>;
        getExecution: (executionId: string) => Promise<WorkflowExecutionDetailDto>;
        getPendingApprovals: (includeAll?: boolean) => Promise<WorkflowApprovalRequestDto[]>;
        approve: (approvalId: string, data?: ApprovalDecisionRequest) => Promise<void>;
        reject: (approvalId: string, data?: ApprovalDecisionRequest) => Promise<void>;
    };
    triggers: {
        getAll: (params?: {
            category?: WorkflowTriggerCategory;
            activeOnly?: boolean;
        }) => Promise<WorkflowTriggerDto[]>;
    };
    actions: {
        getAll: (params?: {
            category?: WorkflowActionCategory;
            activeOnly?: boolean;
        }) => Promise<WorkflowActionDefinitionDto[]>;
    };
};
//# sourceMappingURL=communicationsApi.d.ts.map