import { Evt } from "../index"; import { OneShot } from "../types/helper"; export declare type OneShotEvt = OneShot>; export declare type Racer = OneShotEvt | PromiseLike | T; export declare type UnpackRacer> = T extends OneShotEvt ? U : T extends PromiseLike ? V : T; export declare type RaceResultGeneric[]> = Readonly<{ data: Data; i: Index; racer: Racers[Index]; }>; export declare type RaceResult = RaceResultGeneric, number, readonly RacerUnion[]>; export declare type PrResultWrap = PrResultWrap.Fulfilled | PrResultWrap.Rejected; export declare namespace PrResultWrap { type Common = { promise: PromiseLike; }; export type Fulfilled = Common & { isFulfilled: true; data: T; }; export type Rejected = Common & { isFulfilled: false; data: never; error: any; }; export {}; } export declare function race(racers: readonly [Racer, Racer]): OneShotEvt | RaceResultGeneric>; export declare function race(racers: readonly [Racer, Racer, Racer]): OneShotEvt | RaceResultGeneric | RaceResultGeneric>; export declare function race(racers: readonly [Racer, Racer, Racer, Racer]): OneShotEvt | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric>; export declare function race(racers: readonly [Racer, Racer, Racer, Racer, Racer]): OneShotEvt | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric>; export declare function race(racers: readonly [Racer, Racer, Racer, Racer, Racer, Racer]): OneShotEvt | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric>; export declare function race(racers: readonly [Racer, Racer, Racer, Racer, Racer, Racer, Racer]): OneShotEvt | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric>; export declare function race(racers: readonly [Racer, Racer, Racer, Racer, Racer, Racer, Racer, Racer]): OneShotEvt | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric>; export declare function race(racers: readonly [Racer, Racer, Racer, Racer, Racer, Racer, Racer, Racer, Racer]): OneShotEvt | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric>; export declare function race(racers: readonly [Racer, Racer, Racer, Racer, Racer, Racer, Racer, Racer, Racer, Racer]): OneShotEvt | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric>; export declare function race(racers: readonly [Racer, Racer, Racer, Racer, Racer, Racer, Racer, Racer, Racer, Racer, Racer]): OneShotEvt | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric>; export declare function race(racers: readonly [Racer, Racer, Racer, Racer, Racer, Racer, Racer, Racer, Racer, Racer, Racer, Racer]): OneShotEvt | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric | RaceResultGeneric>; export declare function race(racers: readonly RacerUnion[]): OneShotEvt>;