import type { ContributionEntry } from "./define-contribution.js"; import type { SettingsSchema } from "./define-settings.js"; import type { BaseSlotSpec } from "./define-slot.js"; import { type SlotDescriptor } from "./descriptors.js"; export interface ForgedPlugin< TId extends string = string, TSlots extends Record = Record, > { id: TId; requires?: string[]; slots: TSlots; settings?: SettingsSchema; overlays?: unknown[]; contributions?: ContributionEntry[]; descriptors: Record; } export type PluginInput = | ForgedPlugin> | PluginInput[] | null | undefined | boolean; export declare function definePlugin< TId extends string, TSlots extends Record, >(spec: { id: TId; requires?: string[]; slots?: TSlots; settings?: SettingsSchema; overlays?: unknown[]; contributions?: ContributionEntry[]; }): ForgedPlugin;