import { type ModelNameEntry, type RefreshResult, type ModelKind } from "../stdlib/localModels.js"; import { type ConfigTarget } from "../config/target.js"; import type { DownloadEvent } from "../stdlib/hubDownload.js"; export declare function aliasList(target?: ConfigTarget): ModelNameEntry[]; export declare function aliasAdd(name: string, uri: string, target?: ConfigTarget): string; export declare function aliasRemove(name: string, target?: ConfigTarget): string; /** Deliberately ungated: browsing the catalog needs no provider package * (only download/remove do), and the pre-install experience — see what is * available, then get told what to install — is the point. */ export declare function runList(long?: boolean, kind?: string): void; /** A `--kind` value, or undefined for none. Anything else is refused * naming the kinds. */ export declare function checkedKind(kind: string | undefined): ModelKind | undefined; export declare const CUSTOM_CHOICE = "__custom__"; /** Picker rows for the no-argument `agency local download`. Metadata-less * aliases get a bare name; the trailing choice lets the user type an hf: URI * or .gguf path. */ export declare function downloadChoices(entries: ModelNameEntry[]): { title: string; value: string; }[]; export declare function runDownload(value?: string, kind?: string): Promise; /** One line per event. The byte counter rewrites one terminal line with * the percent, the rate, and the time left, and off a terminal prints a * line at every tenth percent instead, so a log of a long download still * shows how far it got. */ export declare function printDownloadEvent(tty: boolean, write?: (s: string) => void, now?: () => number): (e: DownloadEvent) => void; /** Without `-f`: drop the alias, keep the files, and say where they are. * With `-f`: delete the files too. Models are large, so deleting is the * step that needs the flag. */ /** Why `remove` will not delete a model in a Hugging Face cache. Its files are * symlinks into a shared `blobs/` directory, so deleting the snapshot would * leave the bytes behind. */ export declare function hubRemoveMessage(snapshot: string): string; export declare function runRemove(name: string, opts: { force: boolean; }, target?: ConfigTarget): void; export declare function runResolve(value: string, target?: ConfigTarget): void; export declare function runAliasList(target?: ConfigTarget): void; export declare function runAliasAdd(name: string, uri: string, target?: ConfigTarget): void; export declare function runAliasRemove(name: string, target?: ConfigTarget): void; /** Format the lines `runRefresh` prints. Pure so it can be unit-tested without * a network call. `r.modelCount` is the size of the catalog blob; the * breakdown line accounts for every entry exactly once (added + updated + * unchanged + skipped = modelCount). Color is applied via `ttyColor`, which * is a no-op when stdout isn't a TTY — so piped output (and these unit tests) * stay plain. */ export declare function formatRefreshOutput(r: RefreshResult): string[]; export declare function runRefresh(url?: string, target?: ConfigTarget): Promise;