import { PluginTypes } from './IPluginTypes'; import type { Agent, Tab, FrameEnvironment } from '../client'; export default interface IClientPlugin { id: string; onAgent?(agent: Agent, sendToCore: ISendToCoreFn): void; onTab?(agent: Agent, tab: Tab, sendToCore: ISendToCoreFn): void; onFrameEnvironment?(agent: Agent, frameEnvironment: FrameEnvironment, sendToCore: ISendToCoreFn): void; } export interface IClientPluginClass { id: string; type: PluginTypes.ClientPlugin; coreDependencyIds?: string[]; new (): IClientPlugin; } export declare function ClientPluginClassDecorator(constructor: IClientPluginClass): void; export declare type ISendToCoreFn = (toPluginId: string, ...args: any[]) => Promise;