/**
 * TypeScript type definitions for all Superblocks integrations.
 * These definitions are used to provide type information in API documentation.
 */
import { type SemVer } from "@superblocksteam/shared";
import type { PluginHeader } from "../../../integrations/store.js";
export interface IntegrationTypeDefinition {
    /** The SDK class name used in code */
    className: string;
    /** The plugin/integration ID */
    pluginId: string;
    /** TypeScript constructor and method signatures */
    typeDefinition: string;
    /** Brief description of the integration */
    description: string;
    /** Example usage */
    example?: string;
}
/**
 * Map of plugin IDs to their TypeScript type definitions.
 * These are based on the actual classes from @superblocksteam/library.
 */
export declare const INTEGRATION_TYPE_DEFINITIONS: Record<string, IntegrationTypeDefinition>;
/**
 * Version-specific type definitions for plugins that have different APIs based on version.
 * The key format is "pluginId:minVersion" where minVersion is the minimum version for that definition.
 * Definitions are checked in order, so more specific versions should come first.
 */
export declare const VERSION_SPECIFIC_TYPE_DEFINITIONS: {
    pluginId: string;
    minVersion: string;
    definition: IntegrationTypeDefinition;
}[];
/**
 * Create a type definition for a derived plugin.
 * This template is used for all integrations that use a derived plugin (eg extends OpenApi).
 */
export declare function createExtendedPluginTypeDefinition(plugin: PluginHeader, basePluginId: string, description?: string): IntegrationTypeDefinition | undefined;
export interface GetIntegrationTypeOptions {
    /** Whether parameterized SQL APIs feature is enabled */
    parameterizedApisEnabled?: boolean;
}
/**
 * Get type definition for a specific integration by its plugin ID.
 * For OpenAPI-derived plugins not in the predefined list, generates a definition using the template.
 *
 * @param plugin - The plugin header containing plugin metadata
 * @param version - Optional plugin execution version to get version-specific definitions
 * @param options - Optional configuration including feature flags
 */
export declare function getIntegrationTypeDefinition(plugin: PluginHeader, version?: SemVer, options?: GetIntegrationTypeOptions): IntegrationTypeDefinition | undefined;
/**
 * Get type definitions for multiple integrations
 */
export declare function getIntegrationTypeDefinitions(pluginIds: string[]): Record<string, IntegrationTypeDefinition>;
//# sourceMappingURL=integration-types.d.ts.map