interface InstallResult {
    ok: boolean;
    message: string;
    installedPath?: string;
}
/**
 * Install a skill directly from a GitHub repo URL or a raw markdown URL,
 * without going through the discovery cron. Used by the `skill_install_from_url`
 * tool so the agent can autonomously fetch a skill mid-conversation when
 * none of the existing 200+ catalog skills match the user's need.
 *
 * Accepts:
 *   - https://github.com/<owner>/<repo>          → tries SKILL.md → README.md
 *   - https://raw.githubusercontent.com/<…>.md   → fetches directly
 *   - https://gist.githubusercontent.com/<…>.md  → fetches directly
 *
 * Same safety vetting as cron-discovered installs. Writes to user skills dir
 * + creates a KG row tagged install_status='installed' so it shows up in
 * the dashboard graph.
 */
export declare function installSkillFromUrl(tenantId: string, url: string, options?: {
    name?: string;
    description?: string;
}): Promise<InstallResult>;
/**
 * Install a skill that's stored in the KG as kind=skill,
 * install_status=discovered. Idempotent — re-installs are no-ops.
 */
export declare function installSkill(tenantId: string, kgEntityId: string): Promise<InstallResult>;
/**
 * List all KG skill entries, grouped by install_status. Used by the
 * Saturday skill-library-review cron + dashboard.
 */
export declare function listSkillCandidates(tenantId: string): Promise<{
    discovered: Array<{
        id: string;
        name: string;
        properties: Record<string, unknown>;
    }>;
    installed: Array<{
        id: string;
        name: string;
        properties: Record<string, unknown>;
    }>;
    bundled: Array<{
        id: string;
        name: string;
        properties: Record<string, unknown>;
    }>;
}>;
export {};
//# sourceMappingURL=skill-installer.d.ts.map