import { AppConfig, ConnectorProtocol } from '../types/index.js';
/**
 * Single source of truth for connector type metadata.
 * Used by Settings UI (dropdown + descriptions), server validation, and browser-safety checks.
 */
export interface ConnectorTypeInfo {
    label: string;
    description: string;
    serverOnly: boolean;
}
export declare const CONNECTOR_TYPE_INFO: Record<ConnectorProtocol, ConnectorTypeInfo>;
/** All valid connector protocol types, derived from CONNECTOR_TYPE_INFO. */
export declare const VALID_CONNECTOR_TYPES: ConnectorProtocol[];
/** Connector types that work in the browser (non-serverOnly). */
export declare const BROWSER_SAFE_CONNECTORS: ConnectorProtocol[];
/** Keys of built-in agents shipped with the tool. */
export declare const BUILT_IN_AGENT_KEYS: Set<string>;
/**
 * Ordered list of preferred default agent keys, used when picking an initial
 * agent for popups/forms (e.g. QuickRunModal). The first entry that exists in
 * `DEFAULT_CONFIG.agents` (and is enabled) wins.
 *
 * `observio` is preferred because it's a fully-featured local sample agent
 * users can run end-to-end without external infra.
 */
export declare const PREFERRED_DEFAULT_AGENT_KEYS: readonly ["observio", "demo"];
/**
 * Pick a sensible default agent key.
 *
 * Resolution order:
 *  1. First entry in PREFERRED_DEFAULT_AGENT_KEYS that exists and is enabled
 *  2. First enabled agent in DEFAULT_CONFIG.agents
 *  3. First agent in DEFAULT_CONFIG.agents (even if disabled)
 *  4. Empty string
 */
export declare function getPreferredDefaultAgentKey(): string;
export declare const MODEL_PRICING: Record<string, {
    input: number;
    output: number;
}>;
export declare const DEFAULT_CONFIG: AppConfig;
export declare const MOCK_TOOLS: {
    name: string;
    description: string;
}[];
/**
 * Metadata about agents, updated when refreshConfig() succeeds.
 */
export declare let agentsMeta: {
    hasCustomAgents: boolean;
    customCount: number;
    builtInCount: number;
};
/**
 * Config change listeners.
 * App.tsx subscribes so that any refreshConfig() call triggers a
 * React re-render, making updated agents/models visible in all components.
 */
type ConfigChangeListener = () => void;
/**
 * Subscribe to config changes. Returns an unsubscribe function.
 */
export declare function subscribeConfigChange(listener: ConfigChangeListener): () => void;
/**
 * Fetch agent and model config from the server and update DEFAULT_CONFIG in place.
 * Notifies subscribers so React trees re-render with the new values.
 */
export declare function refreshConfig(): Promise<void>;
export {};
//# sourceMappingURL=constants.d.ts.map