UNPKG

okta-mcp-server

Version:

Model Context Protocol (MCP) server for Okta API operations with support for bulk operations and caching

126 lines 2.91 kB
/** * Type-safe event bus for event-driven architecture */ export type EventHandler<T = any> = (data: T) => void | Promise<void>; export interface EventMap { [event: string]: any; } export interface OktaEventMap extends EventMap { 'server:started': { config: any; }; 'server:stopping': {}; 'server:stopped': {}; 'server:error': { error: any; }; 'tools:list': { request: any; }; 'tools:call': { name: string; args: any; request: any; }; 'resources:list': { request: any; }; 'resources:read': { uri: string; request: any; }; 'okta:request': { method: string; path: string; }; 'okta:response': { method: string; path: string; status: number; duration: number; }; 'okta:error': { method: string; path: string; error: any; }; 'cache:hit': { key: string; }; 'cache:miss': { key: string; }; 'cache:set': { key: string; ttl?: number; }; 'cache:clear': { pattern?: string; }; 'cache:cleanup': { deleted: number; }; 'cache:error': { error: any; key?: string; tag?: string; }; 'audit:logged': { entry: any; }; 'audit:cleanup': { deleted: number; }; 'audit:error': { error: any; }; } export declare class EventBus<T extends EventMap = OktaEventMap> { private handlers; private asyncHandlers; /** * Subscribe to an event */ on<K extends keyof T>(event: K, handler: EventHandler<T[K]>): () => void; /** * Subscribe to an event (alias for on) */ subscribe<K extends keyof T>(event: K, handler: EventHandler<T[K]>): () => void; /** * Subscribe to an event once */ once<K extends keyof T>(event: K, handler: EventHandler<T[K]>): () => void; /** * Unsubscribe from an event */ off<K extends keyof T>(event: K, handler: EventHandler<T[K]>): void; /** * Emit an event synchronously */ emit<K extends keyof T>(event: K, data: T[K]): void; /** * Emit an event asynchronously */ emitAsync<K extends keyof T>(event: K, data: T[K]): Promise<void>; /** * Register an async event handler */ onAsync<K extends keyof T>(event: K, handler: EventHandler<T[K]>): () => void; /** * Wait for an event to occur */ waitFor<K extends keyof T>(event: K, timeout?: number): Promise<T[K]>; /** * Clear all event handlers */ clear(): void; /** * Get the number of handlers for an event */ listenerCount<K extends keyof T>(event: K): number; /** * Get all registered events */ eventNames(): (keyof T)[]; } //# sourceMappingURL=event-bus.d.ts.map