import ts from 'typescript';
import { CompilerContext } from '../compilerContext.js';
import { type ServiceIntegration } from '../../runtime/services/metadata.js';
export type { ServiceIntegration } from '../../runtime/services/metadata.js';
export interface ServiceMethodConfig {
    readonly integration: ServiceIntegration;
    readonly sdkResource?: string;
    readonly hasOutput: boolean;
}
export interface ServiceMethodAlias {
    readonly aliasOf: string;
}
/**
 * Resolved info for a single service method.
 */
export interface ServiceMethodInfo {
    readonly methodName: string;
    readonly symbol: ts.Symbol;
    readonly integration: ServiceIntegration;
    readonly sdkResource?: string;
    readonly hasOutput: boolean;
}
/**
 * A discovered service binding (e.g., Lambda, DynamoDB).
 */
export interface ServiceBinding {
    readonly className: string;
    readonly symbol: ts.Symbol;
    readonly methods: ReadonlyMap<string, ServiceMethodInfo>;
}
/**
 * Registry of all discovered service bindings.
 */
export interface ServiceRegistry {
    readonly bindings: ReadonlyMap<string, ServiceBinding>;
}
/**
 * Build the service registry by scanning runtime/services/ and matching
 * exported classes/functions against the OPTIMIZED_INTEGRATIONS table and
 * SERVICE_SDK_IDS for generic SDK integration fallback.
 */
export declare function discoverServices(context: CompilerContext, servicesDirOverride?: string): ServiceRegistry;
//# sourceMappingURL=serviceDiscovery.d.ts.map