import type { MrtLogWatch } from '@salesforce/b2c-tooling-sdk/operations/mrt'; import type { ToolExecutionContext } from '../adapter.js'; import type { ToolResolution } from '../project-context.js'; export interface MrtLogWatchEntry { watchId: string; /** MRT project slug being tailed. */ project: string; /** MRT environment slug being tailed. */ environment: string; /** MRT API origin URL. */ origin?: string; /** Buffered SDK watch; owns entries, filters and caps. */ watch: MrtLogWatch; resolution?: ToolResolution; } export interface RegisterMrtWatchOptions { project: string; environment: string; origin?: string; watch: MrtLogWatch; resolution?: ToolResolution; } /** * Dedup key for an MRT log watch. A developer may tail several * (project, environment, origin) tuples concurrently, so all three form the key. */ export declare function mrtWatchKey(project: string, environment: string, origin?: string): string; /** Tool-facing IDs for running MRT log watches: one per (project, environment, origin), reaped when idle. */ export declare class MrtLogWatchRegistry { private cleanupTimer; private readonly watches; constructor(); destroyAll(): Promise; destroyWatch(watchId: string): Promise; findByKey(project: string, environment: string, origin?: string): MrtLogWatchEntry | undefined; getWatch(watchId: string): MrtLogWatchEntry | undefined; getWatchOrThrow(watchId: string): MrtLogWatchEntry; listWatches(): MrtLogWatchEntry[]; registerWatch(options: RegisterMrtWatchOptions): MrtLogWatchEntry; private cleanupIdleWatches; } export declare function getMrtLogWatchRegistry(context: ToolExecutionContext): MrtLogWatchRegistry;