import { Request, Response, NextFunction } from 'express'; export interface ServerObservabilityConfig { enabled: boolean; appId: string; endpoint: string; trackErrors?: boolean; } export type ErrorCategory = 'backend' | 'ai' | 'integration' | 'database' | 'auth' | 'validation'; export type ErrorSeverity = 'critical' | 'error' | 'warning'; /** * Unified error metadata - can include any relevant context */ export interface ErrorMetadata { operation?: string; latencyMs?: number; provider?: string; model?: string; inputTokens?: number; outputTokens?: number; estimatedCost?: number; integration?: string; table?: string; query?: string; [key: string]: any; } /** * Creates Express error middleware that captures backend errors * and sends them to the observability collector. * * @example * import { observabilityErrorMiddleware } from '@flavoai/fastfold'; * * app.use(observabilityErrorMiddleware({ * enabled: true, * appId: process.env.APP_ID, * endpoint: 'https://superbuilder.app/api/observe' * })); */ export declare function observabilityErrorMiddleware(config: ServerObservabilityConfig): (_err: Error, _req: Request, _res: Response, next: NextFunction) => void; /** * Initialize observability config for standalone tracking * Call this once during app initialization */ export declare function initObservability(config: ServerObservabilityConfig): void; /** * Get the current observability config */ export declare function getObservabilityConfig(): ServerObservabilityConfig | null; /** * Unified error tracking function - works for all error types * * @example * // AI error * trackError(error, 'ai', { * provider: 'openai', * model: 'gpt-4o', * operation: 'chat', * latencyMs: 1234 * }); * * // Integration error * trackError(error, 'integration', { * integration: 'stripe', * operation: 'createPaymentIntent', * customerId: 'cus_123' * }); * * // Generic backend error * trackError(error, 'backend', { endpoint: '/api/users' }); */ export declare function trackError(error: Error, category: ErrorCategory, metadata?: ErrorMetadata, context?: { sessionId?: string; visitorId?: string; userId?: string; endpoint?: string; userAgent?: string; }): void; /** * Track AI-specific errors (convenience wrapper) */ export declare function trackAIError(error: Error, metadata: ErrorMetadata & { provider: string; operation: string; }, context?: { sessionId?: string; visitorId?: string; userId?: string; endpoint?: string; }): void; /** * Track integration errors (convenience wrapper) */ export declare function trackIntegrationError(error: Error, integration: string, operation: string, metadata?: Omit, context?: { sessionId?: string; visitorId?: string; userId?: string; endpoint?: string; }): void; export interface RequestTrackingConfig extends ServerObservabilityConfig { trackRequests?: boolean; excludePaths?: string[]; } /** * Optional middleware to track all requests (for debugging/analytics) * Note: This generates a lot of data, use carefully in production */ export declare function observabilityRequestMiddleware(config: RequestTrackingConfig): (_req: Request, _res: Response, next: NextFunction) => void; //# sourceMappingURL=observability.d.ts.map