import { b as IntegrationConnector, h as IntegrationCatalogSource } from './core-types-DMDmeutI.js';
import './types-eAvAgnKr.js';

type IntegrationSupportTier = 'catalogOnly' | 'setupReady' | 'gatewayExecutable' | 'firstPartyExecutable' | 'sandboxExecutable';
interface IntegrationRegistrySourceRef {
    sourceId: string;
    providerId: string;
    connectorId: string;
    supportTier: IntegrationSupportTier;
    actionCount: number;
    triggerCount: number;
}
interface IntegrationRegistryConflict {
    field: 'auth' | 'category';
    values: Array<{
        value: string;
        sourceId: string;
        connectorId: string;
    }>;
}
interface IntegrationRegistryEntry {
    canonicalId: string;
    connector: IntegrationConnector;
    aliases: string[];
    supportTier: IntegrationSupportTier;
    sources: IntegrationRegistrySourceRef[];
    conflicts: IntegrationRegistryConflict[];
}
interface IntegrationRegistry {
    entries: IntegrationRegistryEntry[];
    connectors: IntegrationConnector[];
    byId: Map<string, IntegrationRegistryEntry>;
}
interface IntegrationRegistrySummary {
    totalEntries: number;
    totalSources: number;
    toolBindableEntries: number;
    conflictEntries: number;
    bySupportTier: Record<IntegrationSupportTier, number>;
}
interface ComposeIntegrationRegistryOptions {
    aliases?: Record<string, string>;
    sourcePrecedence?: Record<string, number>;
}
declare function buildDefaultIntegrationRegistry(options?: {
    includeSpecs?: boolean;
    includeTangleCatalog?: boolean;
    tangleCatalogRuntimeExecutable?: boolean;
    /** @deprecated Use includeTangleCatalog. */
    includeActivepieces?: boolean;
}): IntegrationRegistry;
/** Per-entry executability classification. Pure metadata — never loads or
 *  runs a runtime module. The coverage report consumes this to separate
 *  "we can execute this today" from "catalog-only / setup-only". */
interface IntegrationCatalogExecutability {
    canonicalId: string;
    /** True when the entry resolves to a runnable action: a first-party /
     *  sandbox / gateway-executable support tier, or a tangle-catalog entry
     *  with a resolvable npm runtime package. */
    executable: boolean;
    supportTier: IntegrationSupportTier;
    authKind: IntegrationConnector['auth'];
    /** Resolvable npm runtime package name when one is registered for this
     *  connector in the vendored catalog; undefined for first-party adapters
     *  (which execute in-process) and catalog-only entries. */
    runtimePackage?: string;
    actionCount: number;
    triggerCount: number;
}
/** Classify every entry in a composed registry by executability + auth kind
 *  WITHOUT executing anything. Defaults to {@link buildDefaultIntegrationRegistry}. */
declare function classifyIntegrationCatalogExecutability(registry?: IntegrationRegistry): IntegrationCatalogExecutability[];
declare function composeIntegrationRegistry(sources: IntegrationCatalogSource[], options?: ComposeIntegrationRegistryOptions): IntegrationRegistry;
declare function summarizeIntegrationRegistry(registry: IntegrationRegistry): IntegrationRegistrySummary;
declare function canonicalConnectorId(id: string, aliases?: Record<string, string>): string;
declare function inferIntegrationSupportTier(connector: IntegrationConnector): IntegrationSupportTier;

export { type ComposeIntegrationRegistryOptions, type IntegrationCatalogExecutability, type IntegrationRegistry, type IntegrationRegistryConflict, type IntegrationRegistryEntry, type IntegrationRegistrySourceRef, type IntegrationRegistrySummary, type IntegrationSupportTier, buildDefaultIntegrationRegistry, canonicalConnectorId, classifyIntegrationCatalogExecutability, composeIntegrationRegistry, inferIntegrationSupportTier, summarizeIntegrationRegistry };
