/** Expects that you handle `catch()` and stragling promises (cases where it
 * times out) on your own */
export declare function awaitOrTimeout<TPromise extends Promise<unknown>, TResult = TPromise extends Promise<infer Value> ? Value : unknown>(promise: TPromise, timeoutMs: number): Promise<{
    timedout: true;
} | {
    timedout: false;
    result: TResult;
}>;
