import { AiQueryOptions } from './ai-query.public-types';
import { AiAgentId } from './communication.public-types';
/**
 * Configuration options for AI agent database integration.
 */
export interface AiAgentDatabaseIntegrationOptions {
    /** If true, provides more detailed status updates during AI query execution. Default: false. */
    verboseStatusUpdates?: boolean;
    /** Full AI query options for advanced configuration of the query execution. */
    aiQueryOptions?: AiQueryOptions;
}
/**
 * Configuration options for AI agent API integration.
 */
export interface AiAgentApiIntegrationOptions {
    /**
     * A list of API operation IDs (endpoint IDs) that the AI agent can call.
     *
     * When this list is not provided (i.e., it is `undefined`) or is empty,
     * the AI agent has access to all operations.
     */
    operationsToUse?: string[];
    /** If true, provides more detailed status updates during API call execution. Default: false. */
    verboseStatusUpdates?: boolean;
    /** If provided, this agent will be used to generate API calls. */
    generateApiCallAgentId?: AiAgentId;
    /** Full AI API options for advanced configuration of the API call execution. */
    aiApiOptions?: AiApiOptions;
}
/**
 * Options for configuring AI API call execution.
 * @category AI
 */
export interface AiApiOptions {
    /**
     * Custom instructions appended to the endpoint-selection, body-construction, and response-analysis prompts.
     */
    instructions?: string;
    /**
     * Maximum number of distinct API calls the AI is allowed to make for one
     * user prompt. Default 4.
     */
    maxIterations?: number;
}
/**
 * Configuration options for AI agent MCP integration.
 */
export interface AiAgentMcpIntegrationOptions {
    /**
     * A list of MCP tool names that the AI agent can use.
     *
     * When this list is not provided (i.e., it is `undefined`) or is empty,
     * the AI agent has access to all tools.
     */
    toolsToUse?: string[];
}
