import type { CleanupFunction } from "../provider/CleanupFunction"; import type { ComputableListDefinition } from "../provider/computables/ComputableListDefinition"; import type { SettingListDefinition } from "../provider/settings/SettingListDefinition"; import type { ProviderContext } from "../provider/ProviderContext"; import type { StateListDefinition } from "../provider/state/StateListDefinition"; import type { DisplaySettings } from "../provider/DisplaySettings"; import type { CompanionConditionListDefinition } from "../condition/companion/CompanionConditionListDefinition"; import type { ProviderColor } from "../provider/ProviderColor"; import type { ExtensionRef } from "../ExtensionRef"; export interface Provider { id: string; name: string; description: string; targets?: ExtensionRef[] | undefined; display: DisplaySettings; color?: ProviderColor; computables?: TComputables; conditions?: TConditions; settings?: TSettings; state?: TState; mount(this: void, context: ProviderContext): CleanupFunction | undefined; }