/** * Data slot names that hosts treat specially for every widget type (a system panel, and the panel * that switches on member colors). A plugin's data slot must not use them (exact, case-sensitive * match). * * @internal */ export declare const RESERVED_DATA_SLOT_NAMES: readonly string[]; /** * A data slot as read from a plugin manifest, which may come from untyped code: every field is * unknown until checked. * * @internal */ export type UncheckedDataSlot = { readonly name?: unknown; readonly displayName?: unknown; readonly maxItems?: unknown; readonly visibleWhen?: unknown; }; /** * A problem found in one data slot of a plugin. * * @internal */ export type DataSlotProblem = { /** The data slot's `name` as declared (may be missing or not a string). */ readonly slotName: unknown; /** What is wrong, phrased to follow `data slot ""`. */ readonly message: string; }; /** Checks one data slot against the whole slot list; returns a message or `undefined`. */ type DataSlotCheck = (slot: UncheckedDataSlot, slots?: readonly UncheckedDataSlot[]) => string | undefined; /** * Flags a `maxItems` that is present but not a whole number of at least 1. * * @param slot - The data slot to check. * @returns The problem message, or `undefined` when the slot follows the rule. * @internal */ export declare const checkMaxItems: DataSlotCheck; /** * Flags a name that is not camelCase; saved widgets load the slot's items under the camelCase form. * * @param slot - The data slot to check. * @returns The problem message, or `undefined` when the slot follows the rule. * @internal */ export declare const checkCamelCaseName: DataSlotCheck; /** * Flags a name reserved by hosts (see `RESERVED_DATA_SLOT_NAMES`). * * @param slot - The data slot to check. * @returns The problem message, or `undefined` when the slot follows the rule. * @internal */ export declare const checkReservedName: DataSlotCheck; /** * Flags a display name equal to the name of another slot. * * @param slot - The data slot to check. * @param slots - Every data slot of the list, including `slot`. * @returns The problem message, or `undefined` when the slot follows the rule. * @internal */ export declare const checkDisplayName: DataSlotCheck; /** * Flags a `visibleWhen` the SDK cannot read; such a slot is always shown. * * @param slot - The data slot to check. * @returns The problem message, or `undefined` when the slot follows the rule. * @internal */ export declare const checkVisibleWhen: DataSlotCheck; /** * Finds the problems in a plugin's data slot list, one per broken rule per slot, in slot order. * Anything that is not a list of objects is ignored rather than rejected. * * @param inputs - The `dataPanel.config.inputs` of a plugin manifest, unchecked. * @returns The problems found; empty when the list follows every rule. * @internal */ export declare const findDataSlotProblems: (inputs: unknown) => readonly DataSlotProblem[]; export {};