/**
 * 模板配置策略类型定义
 */
import { NotificationChannelType } from '../../../../NotificationChannel/List/types';

export interface TemplateConfigStrategy {
  /** 渠道类型 */
  type: NotificationChannelType;
  
  /** 获取默认配置 */
  getDefaultConfig(): any;
  
  /** 验证配置 */
  validateConfig(config: any): boolean;
  
  /** 从API数据加载配置到表单状态 */
  loadFromData(data: any): TemplateConfigState;
  
  /** 从表单状态构建API配置 */
  buildConfig(state: TemplateConfigState, formConfig: any): any;
}

export interface TemplateConfigState {
  /** 额外的状态数据 */
  [key: string]: any;
}

export interface TemplateConfigComponentProps {
  /** 表单注册函数 */
  register: any;
  
  /** 表单错误 */
  errors: any;
  
  /** 设置表单值 */
  setValue: any;
  
  /** 配置状态 */
  configState: TemplateConfigState;
  
  /** 更新配置状态 */
  updateConfigState: (updates: Partial<TemplateConfigState>) => void;
}
