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

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

export interface ConfigState {
  /** 额外的状态数据（如列表项） */
  [key: string]: any;
}

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