import type { Events, HookName, Hooks, KeymapEvent } from "../types.js"; import type { RuntimeEmitter } from "../lib/runtime-utils.js"; import type { State } from "./state.js"; type DiagnosticEvents = Pick, "warning" | "error">; export declare const MAX_STATE_CHANGE_FLUSH_ITERATIONS = 1000; export interface NotificationService { runWithStateChangeBatch(fn: () => T): T; queueStateChange(options?: { invalidateCaches?: boolean; }): void; emitWarning(code: string, warning: unknown, message: string): void; emitError(code: string, error: unknown, message: string): void; reportListenerError(name: HookName, error: unknown): void; warnOnce(key: string, code: string, warning: unknown, message: string): void; } export declare function createNotificationService(state: State, events: RuntimeEmitter>, hooks: RuntimeEmitter>): NotificationService; export {};