import type { SkillPack, SkillPackRegistryFile } from '../core/skills/types.js'; export interface SkillPackInput { id: string; name: string; description?: string; tags?: string[]; include: Array<`skill:${string}`>; } export interface SkillPackUpdateInput { name?: string; description?: string | null; tags?: string[] | null; include?: Array<`skill:${string}`>; /** Expected current revision; if it does not match, the update is rejected * with `SKILL_PACK_REVISION_CONFLICT` so two dashboard tabs cannot silently * overwrite each other. */ expectedRevision?: number; } export type SkillPackStoreErrorDetail = { code: 'SKILL_PACK_NOT_FOUND'; id: string; } | { code: 'SKILL_PACK_ID_CONFLICT'; id: string; } | { code: 'SKILL_PACK_INVALID_SELECTOR'; selector: string; } | { code: 'SKILL_PACK_INVALID'; reason: string; } | { code: 'SKILL_PACK_REVISION_CONFLICT'; id: string; current: number; } | { code: 'SKILL_PACK_IN_USE'; id: string; }; export declare class SkillPackStoreError extends Error { readonly detail: SkillPackStoreErrorDetail; constructor(detail: SkillPackStoreErrorDetail); } export declare function readSkillPackRegistry(): SkillPackRegistryFile; export declare function listSkillPacks(): SkillPack[]; export declare function getSkillPack(id: string): SkillPack | undefined; export declare function createSkillPack(input: SkillPackInput): SkillPack; export declare function updateSkillPack(id: string, input: SkillPackUpdateInput): SkillPack; export declare function deleteSkillPack(id: string): void; export declare function cloneSkillPack(id: string, newId: string): SkillPack; //# sourceMappingURL=skill-pack-store.d.ts.map