import type { AgentId } from './types.js';
import type { AgentRuntimeModeSwitchKind } from './advancedModes.js';
export type AgentSessionModesKind = 'none' | 'acpPolicyPresets' | 'acpAgentModes' | 'staticAgentModes';
export type AgentSessionModeSource = 'none' | 'acp' | 'provider-native';
export type AgentSessionModeSemantics = 'none' | 'policy-presets' | 'agent-modes';
export type AgentSessionModeDescriptor = Readonly<{
    source: AgentSessionModeSource;
    semantics: AgentSessionModeSemantics;
    runtimeSwitch: AgentRuntimeModeSwitchKind;
}>;
/**
 * Session mode surfacing intent for each agent.
 *
 * This is shared between CLI + UI so we can:
 * - keep deprecated alias mapping consistent (`--permission-mode plan` → `--agent-mode plan`)
 * - avoid duplicating “does this agent expose ACP modes?” logic across packages
 */
export declare const AGENT_SESSION_MODE_DESCRIPTORS: Readonly<Record<AgentId, AgentSessionModeDescriptor>>;
export declare const AGENT_SESSION_MODES: Readonly<Record<AgentId, AgentSessionModesKind>>;
export declare function getAgentSessionModeDescriptor(agentId: AgentId): AgentSessionModeDescriptor;
export declare function getAgentSessionModesKind(agentId: AgentId): AgentSessionModesKind;
//# sourceMappingURL=sessionModes.d.ts.map