@rbxts/ui-labs
Version:
Utilities for UI-Labs, a storybook-like plugin for roblox
37 lines (29 loc) • 1.23 kB
TypeScript
// types from @rbxts/lemon-signal
export declare type SignalParameters<T> = Parameters<
T extends unknown[] ? (...args: T) => never : T extends unknown ? (arg: T) => never : () => never
>;
export declare type SignalCallback<T> = (...args: SignalParameters<T>) => unknown;
export declare type SignalWait<T> = T extends unknown[] ? LuaTuple<T> : T;
export declare class Connection<T> {
public readonly Connected: boolean;
public Destroy(): void;
public Disconnect(): void;
public Reconnect(): void;
}
export declare class Signal<T> {
public readonly RBXScriptConnection?: RBXScriptConnection;
public readonly TotalConnections?: number;
public readonly OnConnectionsChanged: Signal<number>;
public constructor(trackConnections?: boolean);
public static is: <O extends object>(object: O) => boolean;
public static wrap: <T extends Callback>(
signal: RBXScriptSignal<T>,
trackConnections?: boolean,
) => Signal<Parameters<T>>;
public Connect(fn: SignalCallback<T>): Connection<T>;
public Once(fn: SignalCallback<T>): Connection<T>;
public Wait(): SignalWait<T>;
public Fire(...args: SignalParameters<T>): void;
public DisconnectAll(): void;
public Destroy(): void;
}