/**
 * Package Registry Coordinator
 *
 * Orchestrates resolution and fetching across all PackageRegistryAdapters.
 * Priority order: local-cache lookup → gitea shorthand → github shorthand → git URL
 *
 * @implements #557
 */
import type { PackageRef, PackageSource, PackageRegistryAdapter, FetchOptions, PackageInfo } from './types.js';
/**
 * Parse a raw reference string into a PackageRef
 *
 * Supported formats:
 *   owner/name                 → gitea shorthand
 *   owner/name@v1.2.0          → gitea shorthand with version
 *   github:owner/name          → github shorthand
 *   github:owner/name@v1.2.0   → github shorthand with version
 *   https://...                → direct git URL
 *   git@host:owner/name.git    → direct SSH URL
 */
export declare function parseRef(raw: string): PackageRef;
/**
 * Resolve a ref to a PackageSource using the appropriate adapter
 */
export declare function resolveRef(ref: PackageRef): Promise<{
    source: PackageSource;
    adapter: PackageRegistryAdapter;
} | null>;
/**
 * Read the namespace for a cached package.
 *
 * Resolution order:
 * 1. `namespace` field in `manifest.json` (explicit — highest priority)
 * 2. Owner segment parsed from `registryKey` (e.g. `roko/ring-methodology` → `roko`)
 *    Also handles scheme-prefixed keys: `clawhub:author/name` → `author`,
 *    `github:thirdparty/repo` → `thirdparty`.
 * 3. `"third-party"` — safe fallback when the key cannot be parsed.
 *
 * AIWG-owned packages (owner = `aiwg`) return `"aiwg"` which is the default
 * namespace used by the AIWG deploy pipeline.
 *
 * @param cachePath   - Absolute path to the cloned/cached package directory
 * @param registryKey - The key stored in packages.yaml, e.g. `"owner/name"` or
 *                      `"github:owner/name"` or `"clawhub:owner/name"`
 */
export declare function readPackageNamespace(cachePath: string, registryKey: string): Promise<string>;
/**
 * Install a package from a ref string
 *
 * 1. Parse ref
 * 2. Resolve to PackageSource via adapters
 * 3. Fetch (clone/pull) to local cache
 * 4. Register in ~/.aiwg/packages.yaml
 *
 * Returns the cache path and resolved namespace.
 */
export declare function installPackage(rawRef: string, options?: FetchOptions & {
    configDir?: string;
}): Promise<{
    cachePath: string;
    key: string;
    type: string;
    namespace: string;
}>;
/**
 * Refresh all registered remote packages (used by `aiwg sync`)
 */
export declare function refreshAllPackages(options?: {
    configDir?: string;
}): Promise<string[]>;
/**
 * List all installed packages
 */
export declare function listInstalledPackages(configDir?: string): Promise<PackageInfo[]>;
/**
 * Remove a package from the registry (does not delete cache)
 */
export declare function uninstallPackage(key: string, configDir?: string): Promise<boolean>;
/**
 * Look up the cache path for an installed package by name
 * (used by `aiwg use` to resolve local packages before bundled npm)
 */
export declare function resolveInstalledPackage(name: string): Promise<string | undefined>;
//# sourceMappingURL=registry.d.ts.map