import { IntegrationSupportTier, IntegrationRegistry, IntegrationRegistrySummary } from './registry.js';
import { d as IntegrationConnectorCategory, e as IntegrationConnectorAction, f as IntegrationActionRisk, g as IntegrationDataClass, b as IntegrationConnector } from './core-types-CjWifQOf.js';
import './types-Bxg-wJkW.js';

interface IntegrationToolDefinition {
    name: string;
    title: string;
    description: string;
    providerId: string;
    connectorId: string;
    connectorTitle: string;
    category: IntegrationConnectorCategory;
    action: IntegrationConnectorAction;
    risk: IntegrationActionRisk;
    dataClass: IntegrationDataClass;
    requiredScopes: string[];
    inputSchema?: unknown;
    outputSchema?: unknown;
    tags: string[];
    supportTier?: IntegrationSupportTier;
    runnable?: boolean;
}
interface IntegrationCatalogView {
    connectors: IntegrationConnector[];
    conflicts: IntegrationRegistry['entries'][number]['conflicts'];
    summary: IntegrationRegistrySummary;
    tools: IntegrationToolDefinition[];
    runtimeTools: IntegrationToolDefinition[];
    discoveryTools: IntegrationToolDefinition[];
}
interface IntegrationToolSearchFilters {
    providerId?: string;
    connectorId?: string;
    category?: IntegrationConnectorCategory;
    maxRisk?: IntegrationActionRisk;
    dataClass?: IntegrationDataClass;
    limit?: number;
}
interface IntegrationToolSearchResult {
    tool: IntegrationToolDefinition;
    score: number;
    matched: string[];
}
interface McpToolDefinition {
    name: string;
    description: string;
    inputSchema: unknown;
}
declare function integrationToolName(providerId: string, connectorId: string, actionId: string): string;
declare function parseIntegrationToolName(name: string): {
    providerId: string;
    connectorId: string;
    actionId: string;
};
declare function buildIntegrationToolCatalog(connectors: IntegrationConnector[]): IntegrationToolDefinition[];
/** Flatten a single (connector, action) pair into the tool descriptor the
 *  catalog exposes. The inverse of {@link parseIntegrationToolName} +
 *  {@link integrationToolName}: every tool name round-trips back to exactly
 *  this shape via {@link describeIntegrationTool}. */
declare function flattenIntegrationToolDefinition(connector: IntegrationConnector, action: IntegrationConnectorAction): IntegrationToolDefinition;
/** Resolve a single tool's full descriptor from an opaque
 *  `int_<provider>_<connector>_<action>` name against a composed registry.
 *  Returns undefined when the name is malformed, the connector is unknown,
 *  or the action is not defined by that connector. Powers `/tools/describe`
 *  without callers re-implementing parse → byId → action → flatten. */
declare function describeIntegrationTool(registry: IntegrationRegistry, toolName: string): IntegrationToolDefinition | undefined;
declare function buildIntegrationCatalogView(input: {
    discoveryRegistry: IntegrationRegistry;
    executableRegistry?: IntegrationRegistry;
}): IntegrationCatalogView;
declare function searchIntegrationTools(catalog: IntegrationToolDefinition[], query: string, filters?: IntegrationToolSearchFilters): IntegrationToolSearchResult[];
declare function toMcpTools(tools: IntegrationToolDefinition[]): McpToolDefinition[];

export { type IntegrationCatalogView, type IntegrationToolDefinition, type IntegrationToolSearchFilters, type IntegrationToolSearchResult, type McpToolDefinition, buildIntegrationCatalogView, buildIntegrationToolCatalog, describeIntegrationTool, flattenIntegrationToolDefinition, integrationToolName, parseIntegrationToolName, searchIntegrationTools, toMcpTools };
