/**
 * Unified config key grammar for `agents config`.
 *
 * Translates user-facing dotted keys like `run.claude@*.tier.best` into the
 * existing storage locations (run.defaults, model.tiers, config.*,
 * defaultBrowserProfile, deviceConfig.*) so the new command barrel can sit on
 * top of the current YAML schema without a migration.
 */
import type { AgentId } from './types.js';
import { type ModelTier } from './model-tiers.js';
/** The top-level scope of a unified config key. */
export type ConfigScope = 'run' | 'interactive' | 'auto' | 'browser' | 'project' | 'device' | 'summarizer';
/** A run-time default key: model, mode, effort, or tier override. */
export interface ParsedRunConfigKey {
    scope: 'run';
    agent: AgentId;
    version: string;
    property: 'model' | 'mode' | 'effort' | 'tier';
    tier?: ModelTier;
}
/** The interactive host pin. */
export interface ParsedInteractiveConfigKey {
    scope: 'interactive';
    property: 'host';
}
/** Which devices automatic placement (`--device auto`) may pick. */
export interface ParsedAutoConfigKey {
    scope: 'auto';
    property: 'pool';
}
/** A browser key: the profile agents drive or the browser that shows the user a
 *  page (both device-scope, self or peer), or `device` — the user-scope fleet
 *  hub every box drives by default, which is central and never peer-targeted. */
export interface ParsedBrowserConfigKey {
    scope: 'browser';
    property: 'profile' | 'viewer' | 'device';
    device?: string;
}
export interface ParsedProjectConfigKey {
    scope: 'project';
    property: 'root';
}
/** A per-device configuration key. */
export interface ParsedDeviceConfigKey {
    scope: 'device';
    device: string;
    property: DeviceConfigProperty;
}
/** The daemon session-summarizer keys (PHNX-3939). */
export interface ParsedSummarizerConfigKey {
    scope: 'summarizer';
    property: 'enabled' | 'baseUrl' | 'model';
}
export type ParsedConfigKey = ParsedRunConfigKey | ParsedInteractiveConfigKey | ParsedAutoConfigKey | ParsedBrowserConfigKey | ParsedProjectConfigKey | ParsedDeviceConfigKey | ParsedSummarizerConfigKey;
export type DeviceConfigProperty = 'role' | 'max-agents' | 'scheduler' | 'daemon' | 'watchdog' | 'tmux' | 'browser.remote-control' | 'browser.task-idle-minutes' | 'notes' | 'browser.profile' | 'browser.viewer';
/** Normalize agent@version to use `@` consistently. */
export declare function formatAgentVersion(agent: AgentId, version: string): string;
/**
 * Parse a unified config key into its structured representation.
 *
 * Supported forms:
 *   run.<agent@version>.model
 *   run.<agent@version>.mode
 *   run.<agent@version>.effort
 *   run.<agent@version>.tier.<cheap|default|best|ultra>
 *   interactive.host
 *   auto.pool
 *   browser.profile
 *   project.root
 *   devices.<name>.role
 *   devices.<name>.max-agents
 *   devices.<name>.scheduler
 *   devices.<name>.daemon
 *   devices.<name>.watchdog
 *   devices.<name>.tmux
 *   devices.<name>.browser.remote-control
 *   devices.<name>.browser.task-idle-minutes
 *   devices.<name>.notes
 *   devices.<name>.browser.profile
 */
export declare function parseConfigKey(key: string): ParsedConfigKey;
/** Render a parsed key back to its canonical dotted string. */
export declare function formatConfigKey(parsed: ParsedConfigKey): string;
/** List every canonical key the command documents, with wildcards expanded to a concrete example. */
export declare function listKnownConfigKeys(): string[];
/**
 * Map a parsed device property to the internal device-config key name.
 * This is the bridge between the friendly `agents config` surface and the
 * existing CONFIG_KEYS registry in lib/device-config.ts.
 */
export declare function devicePropertyToConfigName(property: DeviceConfigProperty): string;
/**
 * Map a parsed key to the human-readable "where is this stored" note.
 * Useful for `agents config list --source` output.
 */
export declare function configKeyStorageHint(parsed: ParsedConfigKey): string;
