import { ServiceType } from './generaltypes'
import { RequestSpan } from './tracing'

/**
 * PingResult represents the output of a ping operation.  This class is
 * currently incomplete and must be casted to `any` in TypeScript to be used.
 *
 * @category Diagnostics
 */
export class PingResult {}

/**
 * @category Diagnostics
 */
export interface PingOptions {
  /**
   * A unique identifier for the report generated by this operation.
   */
  reportId?: string

  /**
   * The services which should be pinged.
   */
  serviceTypes?: ServiceType

  /**
   * The parent tracing span that this operation will be part of.
   */
  parentSpan?: RequestSpan

  /**
   * The timeout for this operation, represented in milliseconds.
   */
  timeout?: number
}

/**
 * DiagnosticsResult represents the output of a operation result.  This
 * class is currently incomplete and must be casted to `any` in TypeScript
 * to be used.
 *
 * @category Diagnostics
 */
export class DiagnosticsResult {}

/**
 * @category Diagnostics
 */
export interface DiagnosticsOptions {
  /**
   * A unique identifier for the report generated by this operation.
   */
  reportId?: string
}
