export interface CommandResult { status: number | null; stdout: string; stderr: string; error?: Error; } export type CommandRunner = (command: string, args: string[]) => CommandResult; export type AsyncCommandRunner = (command: string, args: string[], options?: { signal?: AbortSignal; }) => Promise; export declare const default_runner: CommandRunner; export declare const default_async_runner: AsyncCommandRunner; export declare function command_output(result: CommandResult): string; export declare function ensure_success(result: CommandResult, fallback: string): string; export declare function ensure_success_async(result: Promise, fallback: string): Promise; export declare function has_gh_skill(runner?: CommandRunner): boolean; export type GhSkillScope = 'project' | 'user'; export interface GhInstalledSkill { skillName: string; sourceURL: string; scope: GhSkillScope; version: string; pinned: boolean; path: string; } export declare function normalize_gh_installed_skill(value: unknown): GhInstalledSkill | null; export declare function parse_gh_skill_list_output(output: string): GhInstalledSkill[]; export declare function run_gh_skill_list(runner?: CommandRunner): GhInstalledSkill[]; export declare function run_gh_skill_list_async(runner?: AsyncCommandRunner, options?: { signal?: AbortSignal; }): Promise; export declare function is_github_repo_spec(value: string): boolean; export declare function normalize_github_repo_spec(value: string): string; export declare function github_repository_from_source_url(source_url: string): string | null; export interface GhSkillInstallRequest { repository: string; skill: string; flags: string[]; } export declare function parse_gh_skill_install_args(parts: string[]): GhSkillInstallRequest | null; export declare function run_gh_skill_install(request: GhSkillInstallRequest, runner?: CommandRunner): string; export declare function run_gh_skill_install_async(request: GhSkillInstallRequest, runner?: AsyncCommandRunner, options?: { signal?: AbortSignal; }): Promise; export interface GhRepositorySkill { name: string; path: string; } export interface GhKnownRepository { repository: string; source_url: string; source_urls: string[]; scopes: GhSkillScope[]; installed_skills: GhInstalledSkill[]; } export interface GhRemoteRepositorySkills { repository: string; skills: readonly GhRepositorySkill[]; } export interface GhAvailableRepositorySkill extends GhRepositorySkill { repository: string; source_url: string; source_urls: string[]; repository_scopes: GhSkillScope[]; repository_installations: GhInstalledSkill[]; } export interface GhRepositorySkillReconciliation { known_repositories: GhKnownRepository[]; available_skills: GhAvailableRepositorySkill[]; } export declare function derive_known_github_repositories(installed_skills: readonly GhInstalledSkill[]): GhKnownRepository[]; export declare function reconcile_github_repository_skills(installed_skills: readonly GhInstalledSkill[], remote_repositories: readonly GhRemoteRepositorySkills[]): GhRepositorySkillReconciliation; export interface GhSkillSearchResult { skillName: string; description: string; repo: string; path: string; stars: number; namespace: string; } export declare function list_github_repository_skills(repository: string, ref?: string, runner?: CommandRunner): GhRepositorySkill[]; export declare function list_github_repository_skills_async(repository: string, ref?: string, runner?: AsyncCommandRunner, options?: { signal?: AbortSignal; }): Promise; export declare function run_gh_skill_search(query: string, limit?: number, runner?: CommandRunner): GhSkillSearchResult[]; export declare function run_gh_skill_search_async(query: string, limit?: number, runner?: AsyncCommandRunner, options?: { signal?: AbortSignal; }): Promise; export declare function run_gh_skill_preview(repository: string, skill: string, runner?: CommandRunner): string; export declare function run_gh_skill_preview_async(repository: string, skill: string, runner?: AsyncCommandRunner, options?: { signal?: AbortSignal; }): Promise; export declare function run_gh_skill_update(args: string[], runner?: CommandRunner): string; export declare function run_gh_skill_update_async(args: string[], runner?: AsyncCommandRunner, options?: { signal?: AbortSignal; }): Promise;