export interface NotifierParam {
  key: string;
  label: string;
  type: 'text' | 'url' | 'number' | 'password' | 'select';
  required: boolean;
  default?: any;
  placeholder?: string;
  options?: { label: string; value: string }[];
}

export interface NotifyParams {
  [key: string]: any;
  title?: string;
  content?: string;
  level?: 'info' | 'warn' | 'error';
}

export interface NotifyResult {
  success: boolean;
  message: string;
}

export interface Notifier {
  name: string;
  label: string;
  params: NotifierParam[];
  notify(params: NotifyParams): Promise<NotifyResult>;
}
