import type { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri"; import { type AgentCustomization, type Customization } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/state"; /** * Computes the effective set of selectable custom agents for a session. * * Custom agents live as {@link CustomizationType.Agent | `Agent`} entries * in each container customization's {@link Customization.children | `children`} * array. Only the agent host populates `children` (after parsing the * container). Disabled containers are skipped; containers with an absent * `children` field are treated as "unknown" (e.g. the host has not finished * parsing yet) and skipped, while an empty array means "no children * contributed" and is respected. * * The picker is keyed on the agent's stable {@link AgentCustomization.uri}; * duplicates within the session's customization list are coalesced. */ export declare function getEffectiveAgents(sessionCustomizations: readonly Customization[] | undefined): readonly AgentCustomization[]; /** * Storage key used by the custom-agent pickers to remember the user's last * selection per session-resource scheme. Shared between the Agents Window * picker and the workbench chat-editor picker so the two surfaces agree on * the default for new (untitled) sessions. */ export declare function agentHostAgentPickerStorageKey(resourceScheme: string): string; /** * Resolves the agent that should be shown for a session: * - If the session has a current selection and it exists in the effective list, use it. * - Else if a stored agent URI matches an entry in the list, use that entry. * - Else `undefined` (the default "Agent" placeholder row). * * `sessionAgentUri` accepts either a platform {@link URI} instance or a raw * URI string. The agent-host protocol * {@link import('./state/protocol/state.js').AgentSelection} URI field and the * sessions-layer `ISessionAgentRef` both provide URI strings. */ export declare function resolveAgentHostAgent(agents: readonly AgentCustomization[], sessionAgentUri: URI | string | undefined, storedAgentUri: string | undefined): AgentCustomization | undefined;