export interface RepoComponent { name: string; path: string; sourcePath?: string; sourceFallbackPaths?: string[]; installTargets?: RepoInstallTarget[]; required?: boolean; defaultInstalled?: boolean; groups?: SkillGroup[]; repositoryManaged?: boolean; } export type SkillGroup = "research" | "specialized-dev"; export interface RetiredSkill { name: string; path: string; } export type RepoInstallTargetKind = "shared" | "opencode"; export interface RepoInstallTarget { kind: RepoInstallTargetKind; path: string; } export interface McpComponent { name: string; optional?: boolean; defaultInstalled?: boolean; thirdParty?: boolean; source: string; trust: string; config: Record; } export interface PluginComponent { name: string; optional?: boolean; defaultInstalled?: boolean; thirdParty?: boolean; enabled?: boolean; source: string; trust: string; install?: { status: string; reason: string; }; } export interface ComponentManifest { schemaVersion: number; name: string; retiredSkills?: RetiredSkill[]; components: { agents: RepoComponent[]; commands: RepoComponent[]; skills: RepoComponent[]; mcp: McpComponent[]; plugins: PluginComponent[]; }; } export type RepoManifestKind = "agents" | "commands" | "skills"; export interface RepoManifestDriftEntry { missing: string[]; unmanifested: string[]; } export type RepoManifestDrift = Record; export declare function loadManifest(ailiHome: string): Promise; export declare function resolveSkillSelection(manifest: ComponentManifest, skillNames?: string[], groupNames?: string[]): RepoComponent[]; export declare function findMcp(manifest: ComponentManifest, name: string): McpComponent | undefined; export declare function findPlugin(manifest: ComponentManifest, name: string): PluginComponent | undefined; export declare function repoSourcePaths(component: RepoComponent): string[]; export declare function repoInstallTargets(component: RepoComponent, defaultTargetPath?: string): RepoInstallTarget[]; export declare function opencodeInstallTargets(component: RepoComponent, defaultTargetPath?: string): RepoInstallTarget[]; export declare function validateRelativeComponentPath(label: string, entryPath: string): void; export declare function validateManifestAllowlist(ailiHome: string, manifest: ComponentManifest): Promise; export declare function checkRepoManifestDrift(ailiHome: string, manifest: ComponentManifest): Promise;