import { AgentCapabilities } from "@ag-ui/core";

//#region src/utils/types.d.ts
type MaybePromise<T> = T | PromiseLike<T>;
/**
 * More specific utility for records with at least one key
 */
type NonEmptyRecord<T> = T extends Record<string, unknown> ? keyof T extends never ? never : T : never;
/**
 * Type representing an agent's basic information
 */
interface AgentDescription {
  name: string;
  className: string;
  description: string;
  capabilities?: AgentCapabilities;
}
type RuntimeMode = "sse" | "intelligence";
declare const RUNTIME_MODE_SSE: "sse";
declare const RUNTIME_MODE_INTELLIGENCE: "intelligence";
interface IntelligenceRuntimeInfo {
  wsUrl: string;
}
interface ThreadEndpointRuntimeInfo {
  list: boolean;
  inspect: boolean;
  mutations: boolean;
  realtimeMetadata: boolean;
}
type RuntimeLicenseStatus = "valid" | "none" | "expired" | "expiring" | "invalid" | "unknown";
interface A2UIRuntimeInfo {
  enabled: boolean;
  /**
   * Agent ids the runtime applies A2UI to. When omitted, A2UI applies to
   * every agent served by the runtime.
   */
  agents?: string[];
}
interface RuntimeInfo {
  version: string;
  agents: Record<string, AgentDescription>;
  audioFileTranscriptionEnabled: boolean;
  mode: RuntimeMode;
  intelligence?: IntelligenceRuntimeInfo;
  threadEndpoints?: ThreadEndpointRuntimeInfo;
  /**
   * When true, the runtime exposes POST /agent/:agentId/suggest for stateless
   * suggestion generation. Absent on older runtimes; clients fall back to a
   * client-side agent run.
   */
  suggestions?: boolean;
  /**
   * @deprecated Use `a2ui` instead, which preserves per-agent scoping.
   * Kept for backward compatibility with older clients.
   */
  a2uiEnabled?: boolean;
  a2ui?: A2UIRuntimeInfo;
  openGenerativeUIEnabled?: boolean;
  licenseStatus?: RuntimeLicenseStatus;
  telemetryDisabled?: boolean;
}
//#endregion
export { A2UIRuntimeInfo, AgentDescription, IntelligenceRuntimeInfo, MaybePromise, NonEmptyRecord, RUNTIME_MODE_INTELLIGENCE, RUNTIME_MODE_SSE, RuntimeInfo, RuntimeLicenseStatus, RuntimeMode, ThreadEndpointRuntimeInfo };
//# sourceMappingURL=types.d.cts.map