import type { App } from './api/index.js'; export interface PluginDescriptor { id: string; label: string; app: App; packageName?: string; homepage?: string; componentStateTypes?: string[]; logo?: string; disableAppScope?: boolean; disablePluginScope?: boolean; /** * Run the plugin setup and expose the api even if the devtools is not opened yet. * Useful to record timeline events early. */ enableEarlyProxy?: boolean; settings?: Record; } export declare type PluginSettingsItem = { label: string; description?: string; } & ({ type: 'boolean'; defaultValue: boolean; } | { type: 'choice'; defaultValue: string | number; options: { value: string | number; label: string; }[]; component?: 'select' | 'button-group'; } | { type: 'text'; defaultValue: string; }); declare type InferSettingsType = [T] extends [{ type: 'boolean'; }] ? boolean : [T] extends [{ type: 'choice'; }] ? T['options'][number]['value'] : [T] extends [{ type: 'text'; }] ? string : unknown; export declare type ExtractSettingsTypes> = { [K in keyof O]: InferSettingsType; }; export {};