UNPKG

@rbxts/flamework-tycoon

Version:
22 lines (21 loc) 1.48 kB
/// <reference types="@rbxts/compiler-types" /> /// <reference types="@rbxts/types" /> /// <reference types="@rbxts/compiler-types" /> /// <reference types="@rbxts/compiler-types" /> import { Constructor, AbstractConstructor } from "@flamework/core/out/utility"; import { IReadOnlySignal } from "@rbxts/signals-tooling"; export interface ITycoonData { Items: Map<string, object>; } export interface IOwnerProfile<D extends ITycoonData = ITycoonData> { readonly Instance: Player; readonly OnMutateData: IReadOnlySignal<(newData: Readonly<D>, prevData: Readonly<D>) => void>; } export declare const CreateTycoonData: () => ITycoonData; 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 AbstractConstructor | Constructor, 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 {};