UNPKG

@voxket-ai/voxket-live

Version:

A React widget for embedding Voxket-powered audio/video/chat experiences.

65 lines (64 loc) 2.27 kB
import { VoxketClient } from '../core/client'; import { VoxketEvents } from '../types/core'; export interface PluginContext { client: VoxketClient; emit: <K extends keyof VoxketEvents>(event: K, ...args: Parameters<VoxketEvents[K]>) => void; on: <K extends keyof VoxketEvents>(event: K, handler: VoxketEvents[K]) => () => void; config: Record<string, any>; } export interface Plugin { name: string; version: string; description?: string; dependencies?: string[]; install?(context: PluginContext): void | Promise<void>; uninstall?(context: PluginContext): void | Promise<void>; onSessionStart?(context: PluginContext, sessionId: string): void | Promise<void>; onSessionEnd?(context: PluginContext, sessionId: string): void | Promise<void>; onAgentResponse?(context: PluginContext, response: any): void | Promise<void>; config?: Record<string, any>; } export declare class PluginManager { private plugins; private installedPlugins; private context; constructor(client: VoxketClient); /** * Register a plugin */ register(plugin: Plugin): void; /** * Install a plugin */ install(pluginName: string, config?: Record<string, any>): Promise<void>; /** * Uninstall a plugin */ uninstall(pluginName: string): Promise<void>; /** * Check if a plugin is installed */ isInstalled(pluginName: string): boolean; /** * Get list of installed plugins */ getInstalledPlugins(): string[]; /** * Get list of available plugins */ getAvailablePlugins(): string[]; /** * Get plugin info */ getPluginInfo(pluginName: string): Plugin | undefined; private setupPluginEvents; } export declare function createPlugin(definition: Plugin): Plugin; export declare function createModalityPlugin(name: string, modality: string, handlers: { onActivate?: (context: PluginContext) => void | Promise<void>; onDeactivate?: (context: PluginContext) => void | Promise<void>; onMessage?: (context: PluginContext, message: any) => void | Promise<void>; }): Plugin; export declare const analyticsPlugin: Plugin; export declare const debugPlugin: Plugin; export declare const metricsPlugin: Plugin;