/**
 * Marine-specific circuit breaker implementation
 */
import { CircuitBreakerConfig, CircuitBreakerMetrics, ResilienceResult, ResilienceEvent, MarineEnvironmentStatus } from '../types';
import { CircuitBreakerStateType } from '../types/marine-constants';
/**
 * Enhanced circuit breaker with marine-specific adaptations
 */
export declare class MarineCircuitBreaker {
    private config;
    private metrics;
    private eventListeners;
    private marineEnvironment?;
    constructor(name: string, config?: Partial<CircuitBreakerConfig>);
    /**
     * Execute operation with circuit breaker protection
     */
    execute<T>(operation: () => Promise<T>, operationName?: string): Promise<ResilienceResult<T>>;
    /**
     * Update marine environment status for adaptive behavior
     */
    updateMarineEnvironment(environment: MarineEnvironmentStatus): void;
    /**
     * Get current circuit breaker metrics
     */
    getMetrics(): CircuitBreakerMetrics;
    /**
     * Get current circuit breaker state
     */
    getState(): CircuitBreakerStateType;
    /**
     * Force circuit breaker to specific state (for testing/emergency)
     */
    forceState(state: CircuitBreakerStateType, reason?: string): void;
    /**
     * Add event listener for circuit breaker events
     */
    onEvent(listener: (event: ResilienceEvent) => void): void;
    /**
     * Reset circuit breaker metrics (for testing/maintenance)
     */
    reset(): void;
    /**
     * Check if circuit breaker allows execution
     */
    private canExecute;
    /**
     * Execute operation with timeout
     */
    private executeWithTimeout;
    /**
     * Calculate timeout based on marine conditions
     */
    private calculateTimeout;
    /**
     * Classify failure type for marine-specific handling
     */
    private classifyFailure;
    /**
     * Handle successful operation
     */
    private onSuccess;
    /**
     * Handle failed operation
     */
    private onFailure;
    /**
     * Update marine-specific failure counters
     */
    private updateMarineFailureCounters;
    /**
     * Check if circuit breaker should open
     */
    private shouldOpenCircuit;
    /**
     * Transition to OPEN state
     */
    private transitionToOpen;
    /**
     * Transition to HALF_OPEN state
     */
    private transitionToHalfOpen;
    /**
     * Transition to CLOSED state
     */
    private transitionToClosed;
    /**
     * Calculate recent successes (for half-open state)
     */
    private calculateRecentSuccesses;
    /**
     * Update average response time
     */
    private updateAverageResponseTime;
    /**
     * Adjust configuration for marine conditions
     */
    private adjustForMarineConditions;
    /**
     * Get current marine context
     */
    private getMarineContext;
    /**
     * Emit resilience event
     */
    private emitEvent;
    /**
     * Initialize metrics
     */
    private initializeMetrics;
}
//# sourceMappingURL=MarineCircuitBreaker.d.ts.map