/**
 * Prometheus Metrics Export for Grafana Integration
 *
 * Provides /metrics endpoint for existing Grafana monitoring
 */
import { VenlyClient } from '../venly/VenlyClient.js';
import winston from 'winston';
export interface MetricValue {
    name: string;
    help: string;
    type: 'counter' | 'gauge' | 'histogram' | 'summary';
    value: number;
    labels?: Record<string, string>;
}
export interface PrometheusMetrics {
    [key: string]: MetricValue;
}
/**
 * Prometheus Metrics Service
 */
export declare class PrometheusMetricsService {
    private startTime;
    private metrics;
    private requestCount;
    private successCount;
    private errorCount;
    private toolUsageCount;
    private responseTimes;
    private venlyApiResponseTimes;
    constructor(_venlyClient: VenlyClient, _logger: winston.Logger);
    /**
     * Initialize default metrics
     */
    private initializeMetrics;
    /**
     * Update server uptime metric
     */
    private updateUptimeMetric;
    /**
     * Update memory metrics
     */
    private updateMemoryMetrics;
    /**
     * Update authentication status metric
     */
    private updateAuthMetric;
    /**
     * Record MCP request
     */
    recordRequest(toolName: string, responseTime: number, success: boolean): void;
    /**
     * Record Venly API request
     */
    recordVenlyApiRequest(responseTime: number): void;
    /**
     * Get tool usage metrics
     */
    private getToolUsageMetrics;
    /**
     * Generate Prometheus metrics format
     */
    generateMetrics(): string;
    /**
     * Get Node.js process metrics
     */
    private getProcessMetrics;
    /**
     * Get metrics summary for health checks
     */
    getMetricsSummary(): {
        totalRequests: number;
        successRate: number;
        errorRate: number;
        averageResponseTime: number;
        memoryUsage: number;
        uptime: number;
    };
}
/**
 * Metrics endpoint handler
 */
export declare class MetricsRoutes {
    private metricsService;
    constructor(metricsService: PrometheusMetricsService);
    /**
     * GET /metrics - Prometheus metrics endpoint
     */
    handleMetrics(): Promise<{
        statusCode: number;
        body: string;
        headers: Record<string, string>;
    }>;
}
//# sourceMappingURL=prometheus.d.ts.map