///
///
/**
* Calls a given callback or fires a given BindableEvent after a given number of seconds.
* @param seconds The number of seconds to wait before resolving (minimum is 0.029). NaN/Inf/-Inf all default to 0.029 as well.
* @param callback The callback to call or the BindableEvent to `Fire()`
* @param args The additional arguments to pass by reference into the callback. If a BindableEvent was passed as the second argument, args will be passed in by value.
*/
export declare function delay<
T extends
| BindableEvent<(timeElapsed: number, ...args: Array) => any>
| ((timeElapsed: number, ...args: Array) => any)
>(
seconds: number | undefined,
callback: T,
...args: T extends (timeElapsed: number, ...args: infer P) => any
? P
: T extends BindableEvent
? J extends (timeElapsed: number, ...args: infer P) => any
? P
: never
: never
): void;
/**
* Spawns a function on a new thread, but begins running it immediately
* instead of being deferred. This is sometimes known as a "fast spawn".
* @param callback The function to call. Any further arguments are passed as parameters.
*/
export declare function spawn(callback: T, ...args: Parameters): void;
/**
* Yields the current thread for a given number of seconds/
* @param seconds The duration in seconds for how long the current thread should yield before resuming.
* @returns The number of seconds the thread yielded.
*/
export declare function wait(seconds?: number): number;