UNPKG

@rbxts/flamework-tycoon

Version:
18 lines (17 loc) 1.3 kB
import { Constructor, AbstractConstructor } from "@flamework/core/out/utility"; import { IReadOnlySignal } from "@rbxts/signals-tooling"; export interface TycoonData { Items: Map<string, object>; } export interface OwnerProfileData<D extends TycoonData = TycoonData> { readonly Instance: Player; readonly DataChanged: IReadOnlySignal<(newData: Readonly<D>, prevData: Readonly<D>) => void>; } export declare const CreateTycoonData: () => TycoonData; export declare function IsExtended(ctor: AbstractConstructor, extended: AbstractConstructor): boolean; type ReturnMethods<T extends object> = ExtractKeys<T, Callback>; type TMethod<T> = (self: InferThis<T>, ...parameters: Parameters<T>) => ReturnType<T>; type GetContextFromConstructors<T> = T extends Constructor<infer C> ? C : T extends AbstractConstructor<infer C> ? C : never; export declare const ModifyConstructorMethod: <T extends Constructor | AbstractConstructor, C extends Callback = Callback>(_constructor: T, methodName: ReturnMethods<GetContextFromConstructors<T>> | "constructor", visitor: (originalMethod: TMethod<C>) => (this: GetContextFromConstructors<T>, ...args: unknown[]) => unknown) => T; export declare function ReconcileTable<C extends object, T extends object>(originalObject: C, template: T): T & C; export {};