export declare const PLUGIN_MANIFEST_FILENAMES: readonly ["plugin.manifest.json", "squad-plugin.json", "squad-plugin.yaml", "squad-plugin.yml", "plugin.json", "plugin.yaml", "plugin.yml"]; declare const COMPONENT_KINDS: readonly ["agents", "ceremonies", "decisions", "instructions", "knowledge", "memory", "routing", "templates", "workflows", "hooks", "adapters"]; export type PluginComponentKind = typeof COMPONENT_KINDS[number]; export type PluginFileType = 'agent' | 'asset' | 'doc' | 'instruction' | 'knowledge' | 'prompt' | 'template' | 'workflow'; export interface PluginFileDeployment { source: string; target: string; type?: PluginFileType; } export interface CopilotPluginDependency { id: string; version?: string; optional?: boolean; reason?: string; } export interface CopilotPluginRequirements { requires?: CopilotPluginDependency[]; } export interface PluginRepositoryMetadata { type?: string; url: string; } export interface PluginUpstreamMetadata { package?: string; registry?: string; installCommand?: string; docs?: string; } export interface PluginMcpMetadata { available?: boolean; server?: string; entryPoint?: string; installCommand?: string; reason?: string; } declare const PROVIDER_TYPES: readonly ["memory", "knowledge", "persistence", "event", "policy"]; declare const PROVIDER_MODES: readonly ["read", "write", "read-write"]; declare const PROVIDER_PROTOCOLS: readonly ["static-artifact", "mcp"]; declare const RUNTIME_CAPABILITY_TYPES: readonly ["artifact-generation"]; declare const APPROVED_RUNTIME_PROVIDERS: readonly ["graphify"]; declare const ALLOWED_LIFECYCLE_EVENTS: readonly ["onInstall", "onEnable", "onDisable", "onBeforeSpawn", "onAfterTask", "onMemoryRefresh"]; export type PluginProviderType = typeof PROVIDER_TYPES[number]; export type PluginProviderMode = typeof PROVIDER_MODES[number]; export type PluginProviderProtocol = typeof PROVIDER_PROTOCOLS[number]; export type PluginRuntimeCapabilityType = typeof RUNTIME_CAPABILITY_TYPES[number]; export type RuntimeProviderName = typeof APPROVED_RUNTIME_PROVIDERS[number]; export type LifecycleEventName = typeof ALLOWED_LIFECYCLE_EVENTS[number]; export interface PluginProviderMcpBinding { server?: string; tool?: string; capability?: string; } export interface PluginProviderContract { id: string; type: PluginProviderType; mode?: PluginProviderMode; protocol?: PluginProviderProtocol; description?: string; artifact?: string; mcp?: PluginProviderMcpBinding; capabilities?: string[]; } export interface PluginRuntimeCapability { type: PluginRuntimeCapabilityType; provider: RuntimeProviderName; lifecycle: LifecycleEventName[]; outputPaths: string[]; description?: string; } export interface PluginRuntimeManifest { capabilities?: PluginRuntimeCapability[]; } export interface SquadPluginManifest { id: string; name: string; version: string; description?: string; authors?: string[]; license?: string; squad?: string; components?: Partial>; copilot?: CopilotPluginRequirements; repository?: PluginRepositoryMetadata; upstream?: PluginUpstreamMetadata; mcp?: PluginMcpMetadata; providers?: PluginProviderContract[]; runtime?: PluginRuntimeManifest; files: PluginFileDeployment[]; } export interface PluginValidationResult { valid: boolean; errors: string[]; warnings: string[]; } export interface PluginInstallPlanFile extends PluginFileDeployment { targetRoot: string; } export interface PluginInstallPlan { manifest: SquadPluginManifest; files: PluginInstallPlanFile[]; dryRun: boolean; } export declare const PLUGIN_MANIFEST_SCHEMA_VERSION = "0.1"; export declare function parsePluginManifestContent(content: string, fileName?: string): SquadPluginManifest; export declare function validatePluginManifest(manifest: SquadPluginManifest): PluginValidationResult; export declare function derivePluginRoles(manifest: SquadPluginManifest): PluginComponentKind[]; export declare function createPluginInstallPlan(manifest: SquadPluginManifest, options?: { dryRun?: boolean; }): PluginInstallPlan; export declare function toPosixRelativePath(pathValue: string): string; export declare function describePluginFile(file: PluginFileDeployment): string; export {}; //# sourceMappingURL=plugin-manifest.d.ts.map