import { Brand, ServerAPI } from '@signalk/server-api';
import { OpenApiDescription, OpenApiRecord } from '../api/swagger';
export type PluginFactory = (serverApi: ServerAPI) => Plugin;
export interface Plugin {
    start: (config: object, restart: (newConfiguration: object) => void) => any;
    stop: () => any;
}
export type PluginId = Brand<string, 'PluginId'>;
export interface PluginManager {
    getPluginOpenApiRecords: () => OpenApiRecord[];
    setPluginOpenApi: (pluginId: PluginId, openApi: OpenApiDescription) => void;
    getPluginOpenApi: (pluginId: PluginId) => OpenApiRecord | undefined;
}
