import { AddedClientIssue, ClientIssuePayload, RaisedClientIssue, ResolvedClientIssue } from "../ClientMonitorEvents"; export interface IssueRegistrySink { raise(issue: RaisedClientIssue): void; update(issue: RaisedClientIssue): void; resolve(issue: ResolvedClientIssue): void; notify(issue: OneShotClientIssue): void; } type IssueRegistryAcceptedTypes = { [key: string]: ClientIssuePayload; }; type OneShotClientIssue = AddedClientIssue & { resolvable: false; }; export declare class IssueRegistry { private readonly _uplink; private readonly activeIssueTypes; private readonly activeIssues; constructor(_uplink: IssueRegistrySink); get(key: string): RaisedClientIssue | undefined; getByType(type: K): Set> | undefined; getFirstPayloadByType(type: K): T[K] | undefined; keys(): IterableIterator; get size(): number; has(key: string): boolean; hasType(key: K): boolean; raise(input: { key: string; type: K; payload?: T[K]; timestamp?: number; includeInSample?: boolean; }): boolean; update(input: { key: string; payload?: Partial; timestamp?: number; includeInSample?: boolean; }): boolean; resolve(input: { key: string; comment?: string; payload?: Partial; resolvedAt?: number; }): ResolvedClientIssue | undefined; resolveAll(comment: string): number; notify(input: { type: K; payload?: T[K]; timestamp?: number; includeInSample?: boolean; }): void; readonly asSink: IssueRegistrySink; } export {};