/**
 * Network and performance simulation utilities
 */
import type { NetworkSimulationOptions } from './types';
/**
 * Simulate network conditions
 */
export declare function simulateNetworkConditions(options: NetworkSimulationOptions): Promise<void>;
/**
 * Simulate server load
 */
export declare function simulateServerLoad(loadFactor?: number, baseDelay?: number): Promise<void>;
/**
 * Simulate database query time
 */
export declare function simulateDatabaseQuery(complexity?: 'simple' | 'medium' | 'complex', recordCount?: number): Promise<void>;
/**
 * Simulate file processing time
 */
export declare function simulateFileProcessing(fileSize: number, // in bytes
processingType?: 'upload' | 'download' | 'transform'): Promise<void>;
/**
 * Simulate cache behavior
 */
export declare function simulateCache<T>(key: string, factory: () => T, ttl?: number): T;
/**
 * Simulate authentication check delay
 */
export declare function simulateAuthCheck(tokenComplexity?: 'simple' | 'jwt' | 'oauth'): Promise<void>;
/**
 * Simulate rate limiting
 */
export declare class RateLimiter {
    private limit;
    private windowMs;
    private requests;
    constructor(limit?: number, windowMs?: number);
    isAllowed(identifier: string): boolean;
    getRemainingRequests(identifier: string): number;
    getResetTime(identifier: string): number;
}
/**
 * Simulate circuit breaker pattern
 */
export declare class CircuitBreaker {
    private failureThreshold;
    private recoveryTimeMs;
    private failures;
    private lastFailureTime;
    private state;
    constructor(failureThreshold?: number, recoveryTimeMs?: number);
    execute<T>(operation: () => Promise<T>): Promise<T>;
    private onSuccess;
    private onFailure;
    getState(): 'closed' | 'open' | 'half-open';
}
/**
 * Simulate progressive backoff
 */
export declare function simulateBackoff(attempt: number, baseDelay?: number, maxDelay?: number, factor?: number): Promise<void>;
/**
 * Simulate health check
 */
export declare function simulateHealthCheck(): {
    status: 'healthy' | 'degraded' | 'unhealthy';
    checks: Record<string, boolean>;
    timestamp: string;
};
//# sourceMappingURL=simulation.d.ts.map