export interface SharedGuardOptions { defaultReturn: any; longStackTraces: boolean; } export interface SyncGuardOptions extends SharedGuardOptions { catchAsync: boolean; } export interface AsyncGuardOptions extends SharedGuardOptions { } export declare type GuardedFunction0 = () => R; export declare type GuardedFunction1 = (t1: T1) => R; export declare type GuardedFunction2 = (t1: T1, t2: T2) => R; export declare type GuardedFunction3 = (t1: T1, t2: T2, t3: T3) => R; export declare type GuardedFunction4 = (t1: T1, t2: T2, t3: T3, t4: T4) => R; export declare type GuardedFunction5 = (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R; export declare type GuardedFunction6 = (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6) => R; export declare type GuardedFunction7 = (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6, t7: T7) => R; export declare type GuardedFunction8 = (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6, t7: T7, t8: T8) => R; export declare type GuardedFunctionMaker = ((fn: () => R) => GuardedFunction0) & ((fn: (t1: T1) => R) => GuardedFunction1) & ((fn: (t1: T1, t2: T2) => R) => GuardedFunction2) & ((fn: (t1: T1, t2: T2, t3: T3) => R) => GuardedFunction3) & ((fn: (t1: T1, t2: T2, t3: T3, t4: T4) => R) => GuardedFunction4) & ((fn: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R) => GuardedFunction5) & ((fn: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6) => R) => GuardedFunction6) & ((fn: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6, t7: T7) => R) => GuardedFunction7) & ((fn: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6, t7: T7, t8: T8) => R) => GuardedFunction8); export declare type GuardedAsyncFunction0 = () => R | PromiseLike; export declare type GuardedAsyncFunction1 = (t1: T1) => R | PromiseLike; export declare type GuardedAsyncFunction2 = (t1: T1, t2: T2) => R | PromiseLike; export declare type GuardedAsyncFunction3 = (t1: T1, t2: T2, t3: T3) => R | PromiseLike; export declare type GuardedAsyncFunction4 = (t1: T1, t2: T2, t3: T3, t4: T4) => R | PromiseLike; export declare type GuardedAsyncFunction5 = (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R | PromiseLike; export declare type GuardedAsyncFunction6 = (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6) => R | PromiseLike; export declare type GuardedAsyncFunction7 = (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6, t7: T7) => R | PromiseLike; export declare type GuardedAsyncFunction8 = (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6, t7: T7, t8: T8) => R | PromiseLike; export declare type GuardedAsyncFunctionMaker = ((fn: () => R) => GuardedAsyncFunction0) & ((fn: (t1: T1) => R | PromiseLike) => GuardedAsyncFunction1) & ((fn: (t1: T1, t2: T2) => R | PromiseLike) => GuardedAsyncFunction2) & ((fn: (t1: T1, t2: T2, t3: T3) => R | PromiseLike) => GuardedAsyncFunction3) & ((fn: (t1: T1, t2: T2, t3: T3, t4: T4) => R | PromiseLike) => GuardedAsyncFunction4) & ((fn: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5) => R | PromiseLike) => GuardedAsyncFunction5) & ((fn: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6) => R | PromiseLike) => GuardedAsyncFunction6) & ((fn: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6, t7: T7) => R | PromiseLike) => GuardedAsyncFunction7) & ((fn: (t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6, t7: T7, t8: T8) => R | PromiseLike) => GuardedAsyncFunction8); export declare function syncGuard(handler: (err: Error) => void, opts?: Partial): GuardedFunctionMaker; export declare function asyncGuard(handler: (err: Error) => void, opts?: Partial): GuardedAsyncFunctionMaker;