import type { SkillFileEntry } from "./useSkillUpload";
/** Return value of {@link useSkillArtifact}. */
export interface UseSkillArtifactReturn {
    /** File entries in the skill package, or `null` while loading/on error. */
    readonly files: SkillFileEntry[] | null;
    /** `true` while the artifact is being fetched and unpacked. */
    readonly isLoading: boolean;
    /** Error from the fetch/unpack, or `null` when healthy. */
    readonly error: Error | null;
    /** Get the text content of a file by path, or `null` if not available. */
    readonly getFileContent: (path: string) => string | null;
    /** Re-fetch the artifact from the server. */
    readonly refetch: () => void;
}
/**
 * Data hook that fetches and unpacks a skill's ZIP artifact for browsing.
 *
 * Uses `stigmer.skill.getArtifact()` with the skill's storage key,
 * then decompresses the ZIP using `fflate` to expose a file listing
 * and content retrieval.
 *
 * Pass `null` for `artifactStorageKey` to skip fetching (stable no-op).
 *
 * @example
 * ```tsx
 * const { skill } = useSkill(org, slug);
 * const { files, getFileContent, isLoading } = useSkillArtifact(
 *   skill?.status?.artifactStorageKey ?? null
 * );
 *
 * if (files) {
 *   const readme = getFileContent("SKILL.md");
 * }
 * ```
 */
export declare function useSkillArtifact(artifactStorageKey: string | null): UseSkillArtifactReturn;
//# sourceMappingURL=useSkillArtifact.d.ts.map