/**
 * Copyright IBM Corp. 2024, 2025
 */

export interface ITelemetryData {
  attributes: IAttributes;
  verbosity: IVerbosity[];
}

export enum Level {
  NONE = 'none',
  BASIC = 'basic',
  NORMAL = 'normal',
  DETAILED = 'detailed',
}

type IPath = {
  path: string;
};

type IMethod = {
  method: string;
};

type PathAndMethod = {
  path: string;
  method: string;
};

type Id = {
  id: string;
};

type IOperation = Id | IPath | IMethod | PathAndMethod;

export interface IVerbosity {
  level: Level;
  onSuccessTrimTo: Level;
  inboundLevel: Level;
  outboundLevel: Level;
  operations: IOperation[];
}

type IAttributes = {
  [key: string]: string;
};
