interface Success { data: T; error: null; } interface Failure { data: null; error: E; } type Result = Success | Failure; type SafeFunctionPayload = () => Promise | T; interface SafeFunctionOption { retries?: number; retryDelay?: number; timeout?: number; } type SafeFunctionResult = Promise>; type SafeSyncFunctionPayload = () => T; type SafeSyncFunctionResult = Result; declare class TimeoutError extends Error { constructor(ms: number); } declare const sleep: (ms: number) => Promise; declare const safe: (fn: SafeFunctionPayload, options?: SafeFunctionOption) => SafeFunctionResult; declare const syncSafe: (fn: SafeSyncFunctionPayload) => SafeSyncFunctionResult; export { Failure, Result, SafeFunctionOption, SafeFunctionPayload, SafeFunctionResult, SafeSyncFunctionPayload, SafeSyncFunctionResult, Success, TimeoutError, safe, sleep, syncSafe };