export type AttributeValue = string | number | boolean | null; export type SpanOpts = { name: string; op?: "use-case" | "controller" | "repository" | "service" | string; attributes?: Record; }; export interface ISpan { setAttribute(key: string, value: AttributeValue): void; setStatus(status: "ok" | "error", message?: string): void; } export interface ITracer { startSpan(opts: SpanOpts, fn: (span: ISpan) => Promise): Promise; }