export interface ImportParamsDiagnostic {
  code: string;
  catalog: string;
  description: string;
}

export interface ImportParams {
  /** Optional list of diagnostics the consumer wants the activity-history
   * importer to filter by. If absent, the diagnostics filter is hidden.
   * Plugins must map their own diagnostic shape to this common model. */
  diagnostics?: ImportParamsDiagnostic[];
  /** Open extension point for future per-importer parameters. */
  [key: string]: unknown;
}

export interface PrimariaImportDataManager {
  import(
    importerId: string,
    params?: ImportParams,
  ): Promise<{
    accepted: boolean;
    data: Record<string, any[]>;
    text: { raw: string; html: string };
  }>;

  selectItems(payload: {
    pluginId: string;
    data: any[];
    text: { raw: string; html: string };
  }): void;

  getCurrentImporterId(): string;

  /** Returns the params the current importer was opened with (or undefined
   * if no import is in progress). */
  getCurrentImportParams(): ImportParams | undefined;
}
