/** An argument that is unmistakably a URL rather than an id. */ export declare function looksLikeUrl(arg: string): boolean; export interface IdArgsOk { ok: true; /** The ids AS GIVEN, duplicates intact — the server charges pre-dedup. */ ids: string[]; } export interface IdArgsError { ok: false; lines: string[]; } /** * Validate the positional ids for `show` / `add`. * * A URL is a USAGE error (exit 1, zero network calls). A merely malformed id * (`pastel-pumpkin.png`) is NOT: it goes to the server and comes back in * `unknown[]`, so the other ids in the same call still resolve. Those two cases * look similar and are deliberately different — one is a shape the CLI must never * transmit, the other is a lookup that must not destroy its siblings. */ export declare function parseIdArgs(args: string[]): IdArgsOk | IdArgsError; /** De-duplicate for DISPLAY, preserving first-occurrence order. */ export declare function dedupeForDisplay(items: T[], key: (t: T) => string): T[]; export interface SearchFlags { kind?: string; render?: string; palette?: string; limit?: number; } export type SearchFlagResult = { ok: true; flags: SearchFlags; } | { ok: false; lines: string[]; }; /** `--limit` is clamped by the SERVER at 50; the CLI only rejects nonsense. */ export declare function parseSearchFlags(raw: { kind?: string; render?: string; palette?: string; limit?: string; }): SearchFlagResult;