import type { BotRow, DeliveryMode, NativeSkillGroup, ProjectTrustMode, SkillPackRow, SkillRow } from './types.js'; export interface SkillsData { skills: SkillRow[]; nativeSkillGroups: NativeSkillGroup[]; bots: BotRow[]; /** full pack rows from /api/skill-packs — the single source for pack state */ packs: SkillPackRow[]; trustProjectSkills: ProjectTrustMode; delivery: DeliveryMode; loading: boolean; loadError: string | null; /** non-404 failure loading /api/skill-packs — previous pack data is kept */ packsError: string | null; /** true once /api/skill-packs has answered definitively (2xx or 404). * While false, pack-derived health is UNKNOWN: consumers must not render * pack_missing (nor "healthy") from a never-loaded empty array. */ packsKnown: boolean; refresh: () => Promise; /** targeted mutators for optimistic local updates after PUT/DELETE responses */ setSkills: React.Dispatch>; setBots: React.Dispatch>; setTrustProjectSkills: React.Dispatch>; setDelivery: React.Dispatch>; } /** Single fetch + refresh cycle for the whole skills page. All four tabs read * from this state; no tab issues its own list fetch, so there is exactly one * copy of skills/packs/bots and one refresh() that keeps them consistent. */ export declare function useSkillsData(options: { apiUnavailableText: string; }): SkillsData; //# sourceMappingURL=use-skills-data.d.ts.map