export { BaseService, ServiceConfig, ServiceResponse, ServiceMetrics } from './base-service.js';
export { CacheService, CacheConfig, CacheStats } from './cache-service.js';
export { ExternalApiService, ExternalApiConfig, ApiRequest } from './external-api-service.js';
export { DatabaseService, DatabaseConfig, QueryOptions, AggregationOptions } from './database-service.js';
import { CacheService, CacheConfig } from './cache-service.js';
import { ExternalApiService, ExternalApiConfig } from './external-api-service.js';
import { DatabaseService, DatabaseConfig } from './database-service.js';
export interface ServiceManagerConfig {
    cache?: CacheConfig;
    database?: DatabaseConfig;
    externalApis?: {
        openai?: ExternalApiConfig;
        google?: ExternalApiConfig;
        typesense?: ExternalApiConfig;
        [key: string]: ExternalApiConfig | undefined;
    };
}
export declare class ServiceManager {
    private static instance;
    private services;
    private healthCheckInterval?;
    private constructor();
    static getInstance(): ServiceManager;
    /**
     * Initialize services with configuration
     */
    initialize(config: ServiceManagerConfig): Promise<void>;
    /**
     * Get service by name
     */
    getService<T = any>(name: string): T | undefined;
    /**
     * Get cache service
     */
    getCache(): CacheService | undefined;
    /**
     * Get database service
     */
    getDatabase(): DatabaseService | undefined;
    /**
     * Get external API service
     */
    getExternalApi(name: string): ExternalApiService | undefined;
    /**
     * Get all service health statuses
     */
    getHealthStatus(): Promise<Record<string, any>>;
    /**
     * Start health monitoring for all services
     */
    private startHealthMonitoring;
    /**
     * Shutdown all services gracefully
     */
    shutdown(): Promise<void>;
    /**
     * Reset service manager (useful for testing)
     */
    reset(): void;
    /**
     * Get service metrics
     */
    getMetrics(): Record<string, any>;
}
export declare const serviceManager: ServiceManager;
