import type { AgentId } from '../types.js';
import { type AgentTarget, type VersionProvider, type VersionSource, type ResolveOptions, type VersionFilter } from './types.js';
/**
 * Resolve an agent spec (single or comma-list) into concrete installed targets.
 * `@latest`/`@oldest`/`@all` range over installed versions.
 */
export declare function resolveAgentTargets(spec: string, provider: VersionProvider, opts?: ResolveOptions): AgentTarget[];
/**
 * Single-target commands (`run`, `sync`, `inspect`): resolve a spec that must
 * name exactly one installed version. Rejects `@all` / multi-target specs.
 */
export declare function resolveSingleAgentTarget(spec: string, provider: VersionProvider, opts?: ResolveOptions): {
    agent: AgentId;
    version: string;
    source: VersionSource;
};
/**
 * Read/list commands: resolve a qualifier into a version filter.
 *   undefined / '' / @any → no filter (show all installed versions)
 *   @default / @pinned    → the literal 'default' sentinel (show the configured default)
 *   @latest/@oldest/x.y.z → a concrete version (throws if not installed)
 * Uniform `@default` handling fixes the prior rules-vs-view inconsistency.
 */
export declare function resolveVersionFilter(agent: AgentId, qualifier: string | undefined | null, provider: VersionProvider, opts?: ResolveOptions): VersionFilter;
/**
 * Concrete version filter for list/display commands whose downstream code
 * filters by an exact version string (not the `'default'` sentinel `view` uses).
 *   undefined / '' / @any → undefined  (no filter → show all installed)
 *   @default / @pinned    → the configured default version, or undefined if none
 *                           is set (falls back to show-all rather than erroring)
 *   @latest/@oldest/x.y.z → a concrete version (throws AgentSpecError if bad)
 */
export declare function resolveListFilter(agent: AgentId, qualifier: string | undefined | null, provider: VersionProvider, opts?: ResolveOptions): string | undefined;
