import type { BlocklistEntry, BlocklistCache, InstallSafetyResult } from "./types.js"; /** * Read the cached blocklist from disk. * Returns null if the cache file does not exist or is corrupted. */ export declare function getCachedBlocklist(): BlocklistCache | null; /** * Check whether the cached blocklist is older than the stale threshold (1 hour). */ export declare function isBlocklistStale(cache: BlocklistCache): boolean; /** * Fetch the full blocklist from the API and write it to the local cache. */ export declare function syncBlocklist(): Promise; /** * Check whether a skill is on the blocklist. * * 1. Check local cache first. * 2. If cache is stale, attempt to refresh from the API. * 3. If the API is unreachable, fall back to the stale cache. * 4. Returns the matching BlocklistEntry or null if not blocked. */ export declare function checkBlocklist(skillName: string, contentHash?: string): Promise; /** * Check install safety via the platform API (blocklist + rejection status). * * Makes a single HTTP call to GET /api/v1/blocklist/check?name=X. * Falls back to local checkBlocklist() when the API is unreachable * (graceful degradation: rejected=false). * * When repoUrl is provided and the API returns a rejection from a different * repo, the rejection is ignored (name-only matching can produce false * positives across unrelated repos). */ export declare function checkInstallSafety(skillName: string, contentHash?: string, repoUrl?: string): Promise;