export type FasedHubSkillSearchResult = {
    score: number;
    slug: string;
    displayName: string;
    summary?: string;
    version?: string;
    updatedAt?: number;
};
export type FasedHubSkillDetail = {
    skill: {
        slug: string;
        displayName: string;
        summary?: string;
        tags?: Record<string, string>;
        createdAt: number;
        updatedAt: number;
    } | null;
    latestVersion?: {
        version: string;
        createdAt: number;
        changelog?: string;
    } | null;
    metadata?: {
        os?: string[] | null;
        systems?: string[] | null;
    } | null;
    owner?: {
        handle?: string | null;
        displayName?: string | null;
        image?: string | null;
    } | null;
};
export type FasedHubSkillListResponse = {
    items: Array<{
        slug: string;
        displayName: string;
        summary?: string;
        tags?: Record<string, string>;
        latestVersion?: {
            version: string;
            createdAt: number;
            changelog?: string;
        } | null;
        metadata?: {
            os?: string[] | null;
            systems?: string[] | null;
        } | null;
        createdAt: number;
        updatedAt: number;
    }>;
    nextCursor?: string | null;
};
export type FasedHubDownloadResult = {
    archivePath: string;
    integrity: string;
    cleanup: () => Promise<void>;
};
type FetchLike = (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
export declare class FasedHubRequestError extends Error {
    readonly status: number;
    readonly requestPath: string;
    readonly responseBody: string;
    constructor(params: {
        path: string;
        status: number;
        body: string;
    });
}
export declare function resolveFasedHubBaseUrl(baseUrl?: string): string;
export declare function resolveFasedHubWorkdir(cwd?: string): string;
export declare function resolveFasedHubConfigPaths(): string[];
export declare function resolveFasedHubAuthToken(): Promise<string | undefined>;
export declare function searchFasedHubSkills(params: {
    query: string;
    baseUrl?: string;
    token?: string;
    timeoutMs?: number;
    fetchImpl?: FetchLike;
    limit?: number;
}): Promise<FasedHubSkillSearchResult[]>;
export declare function fetchFasedHubSkillDetail(params: {
    slug: string;
    baseUrl?: string;
    token?: string;
    timeoutMs?: number;
    fetchImpl?: FetchLike;
}): Promise<FasedHubSkillDetail>;
export declare function listFasedHubSkills(params: {
    baseUrl?: string;
    token?: string;
    timeoutMs?: number;
    fetchImpl?: FetchLike;
    limit?: number;
}): Promise<FasedHubSkillListResponse>;
export declare function downloadFasedHubSkillArchive(params: {
    slug: string;
    version?: string;
    tag?: string;
    baseUrl?: string;
    token?: string;
    timeoutMs?: number;
    fetchImpl?: FetchLike;
}): Promise<FasedHubDownloadResult>;
export type ClawHubSkillSearchResult = FasedHubSkillSearchResult;
export type ClawHubSkillDetail = FasedHubSkillDetail;
export type ClawHubSkillListResponse = FasedHubSkillListResponse;
export type ClawHubDownloadResult = FasedHubDownloadResult;
export declare const resolveClawHubBaseUrl: typeof resolveFasedHubBaseUrl;
export declare const resolveClawHubAuthToken: typeof resolveFasedHubAuthToken;
export declare const searchClawHubSkills: typeof searchFasedHubSkills;
export declare const fetchClawHubSkillDetail: typeof fetchFasedHubSkillDetail;
export declare const listClawHubSkills: typeof listFasedHubSkills;
export declare const downloadClawHubSkillArchive: typeof downloadFasedHubSkillArchive;
export {};
