import type { CheckUpdateResult } from "../api/client.js";
import type { VskillLock } from "../lockfile/types.js";
/**
 * 0740: Programmatic entry-point for "what's outdated?". Same disk-version
 * reconcile logic as `outdatedCommand`, but returns the data instead of
 * printing/exiting. Lets the eval-server's `/api/skills/updates` route
 * compute updates without shelling out to a separate `vskill` binary on
 * PATH (which may be a different version than the studio is bundling).
 *
 * Returns null when there is no lockfile or no installed skills.
 */
export declare function getOutdatedJson(): Promise<{
    results: CheckUpdateResult[];
    pinMap: Map<string, string>;
    authoredNames: Set<string>;
} | null>;
export declare function outdatedCommand(opts: {
    json?: boolean;
}): Promise<void>;
/**
 * Post-install hint: check if other installed skills have updates.
 * Throttled to once per 24h. Silently swallows all errors.
 *
 * @param lock - Current lockfile state (may be mutated with lastUpdateCheck)
 * @param lockDir - Directory to write lockfile to
 * @param justInstalledNames - Skill names just installed (excluded from check)
 */
export declare function postInstallHint(lock: VskillLock, lockDir: string, justInstalledNames: string[]): Promise<void>;
