import type { ServiceBindingOptions, ServiceExportOptions } from './types.js'; export declare const SERVICE_EXPORT_METADATA_KEY = "di:service-export"; export declare const SERVICE_BINDING_METADATA_KEY = "di:service-binding"; export declare const EXPORT_OPERATION_METADATA_KEY = "di:export-operation"; /** * Marks a class as an exported service exposing operations to bound callers. * * @example * @Container() * @ExportService({ name: 'inventory', operations: ['reserve', 'release'] }) * export class InventoryService { * async reserve(items: any[]) { ... } * async release(id: string) { ... } * } */ export declare function ExportService(options: string | ServiceExportOptions): (ctor: T) => T; /** * Method decorator marking a specific method as an exported operation. */ export declare function ExportOperation(): (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => PropertyDescriptor; /** * Injects a private service-to-service binding into a constructor parameter or property. * * @example Constructor injection * @Container() * export class CheckoutService { * constructor(@ServiceBinding('inventory') private inventory: InventoryClient) {} * } * * @example Property injection * @Container() * export class CheckoutService { * @ServiceBinding('inventory') * private inventory!: InventoryClient; * } */ export declare function ServiceBinding(bindingName: string, options?: ServiceBindingOptions): (targetClass: any, propertyKey?: string | symbol, parameterIndex?: number) => void;