/** * Schema for `.claude-plugin/plugin.json` — Claude Code plugin manifests. * * The manifest is technically optional (if omitted, Claude Code * auto-discovers components in default locations), but when present it * must at minimum carry a `name`. Component path fields like `commands` * and `agents` accept either a single path string or an array of path * strings. `hooks`, `mcpServers`, and `lspServers` additionally accept * inline record objects. * * See https://code.claude.com/docs/en/plugins-reference for the * authoritative spec. * * @since 0.1.0 */ import * as Schema from 'effect/Schema'; declare const AuthorInfo_base: Schema.Class; readonly url: Schema.optional; }>, {}>; /** * Author or owner metadata. The `name` field is required; `email` and * `url` are optional. The same shape is reused for `owner` in * marketplace files. * * @category Schemas * @since 0.1.0 */ export declare class AuthorInfo extends AuthorInfo_base { } /** * `commands`, `agents`, `skills`, `outputStyles`, themes, and monitors * accept either a single path string or an array of path strings. * * @category Schemas * @since 0.1.0 */ export declare const ComponentPathSpec: Schema.Union]>; export type ComponentPathSpec = Schema.Schema.Type; /** * `hooks` accepts a path string, an array of path strings, or an * inline `HooksSection` object. * * @category Schemas * @since 0.1.0 */ export declare const HooksSpec: Schema.Union, Schema.$Record>]>; export type HooksSpec = Schema.Schema.Type; /** * `mcpServers` and `lspServers` accept a path string, an array of path * strings, or an inline record. The record values are intentionally * loose (`Schema.Unknown`) since the strict MCP schema lives in * `src/Mcp/` and we don't want Plugin to depend on it. * * @category Schemas * @since 0.1.0 */ export declare const ServerConfigSpec: Schema.Union, Schema.$Record]>; export type ServerConfigSpec = Schema.Schema.Type; export declare const UserConfigType: Schema.Literals; declare const UserConfigEntry_base: Schema.Class; readonly title: Schema.String; readonly description: Schema.String; readonly sensitive: Schema.optional; readonly required: Schema.optional; readonly default: Schema.optional; readonly multiple: Schema.optional; readonly min: Schema.optional; readonly max: Schema.optional; }>, {}>; /** * A single entry in the `userConfig` record. Claude Code prompts the * user for these values when the plugin is enabled. Sensitive values * go to the system keychain; non-sensitive values go to settings.json. * * @category Schemas * @since 0.1.0 */ export declare class UserConfigEntry extends UserConfigEntry_base { } /** * The `userConfig` field — a record from identifier keys to * `UserConfigEntry` values. * * @category Schemas * @since 0.1.0 */ export declare const UserConfigRecord: Schema.$Record; export type UserConfigRecord = Schema.Schema.Type; declare const ChannelSpec_base: Schema.Class>; }>, {}>; /** * A message channel spec. The `server` must match a key in * `mcpServers`. The optional per-channel `userConfig` uses the same * shape as the top-level `userConfig`. * * @category Schemas * @since 0.1.0 */ export declare class ChannelSpec extends ChannelSpec_base { } declare const PluginDependency_base: Schema.Class; }>, {}>; export declare class PluginDependency extends PluginDependency_base { } export declare const DependencySpec: Schema.Union; declare const ExperimentalSpec_base: Schema.Class]>>; readonly monitors: Schema.optional]>>; }>, {}>; export declare class ExperimentalSpec extends ExperimentalSpec_base { } declare const PluginManifest_base: Schema.Class; readonly version: Schema.optional; readonly description: Schema.optional; readonly displayName: Schema.optional; readonly defaultEnabled: Schema.optional; readonly author: Schema.optional; readonly homepage: Schema.optional; readonly repository: Schema.optional; readonly license: Schema.optional; readonly keywords: Schema.optional>; readonly dependencies: Schema.optional>>; readonly experimental: Schema.optional; readonly commands: Schema.optional]>>; readonly agents: Schema.optional]>>; readonly skills: Schema.optional]>>; readonly outputStyles: Schema.optional]>>; readonly hooks: Schema.optional, Schema.$Record>]>>; readonly mcpServers: Schema.optional, Schema.$Record]>>; readonly lspServers: Schema.optional, Schema.$Record]>>; readonly userConfig: Schema.optional>; readonly channels: Schema.optional>; }>, {}>; /** * A Claude Code plugin manifest. Only `name` is required; everything * else is optional. The `name` is used for namespacing components * (e.g. `plugin-name:agent-name`). * * @category Schemas * @since 0.1.0 */ export declare class PluginManifest extends PluginManifest_base { } export {}; //# sourceMappingURL=Manifest.d.ts.map