import type { IProfilerCollector } from '../collectors/collector.interface.js'; import type { Profile } from '../interfaces/profile.interface.js'; import type { ProfilerTag, TagSeverity } from './profiler-tag.interface.js'; export interface TaggableEntry { duration: number; startedAt?: number; parentSpanId?: string; fingerprint?: string; tags?: ProfilerTag[]; error?: string; } export interface TagConfig { slowThreshold: number; nPlusOneThreshold: number; chattyThreshold?: number; largePayloadThreshold?: number; isErrorEntry?: (entry: TaggableEntry) => boolean; errorSeverity?: TagSeverity; slowSeverity?: TagSeverity; nPlusOneSeverity?: TagSeverity; chattySeverity?: TagSeverity; largePayloadSeverity?: TagSeverity; zeroRowsSeverity?: TagSeverity; } export interface TaggableCollector { readonly tagDomain: string; getTaggableEntries(profile: Profile): TaggableEntry[] | undefined; getTagConfig(): TagConfig; } export declare function isTaggableCollector(collector: IProfilerCollector): collector is IProfilerCollector & TaggableCollector;