///
///
import { Component } from "../component";
import { ExtractInstanceType, UiInstance } from "./instances";
import { Var } from "./state";
type InferVariables = [C] extends [Var] ? [N, Ctx] : [C] extends [UiInstance] ? InferInstanceVariables : [C] extends [
{
_if: [infer C, infer T, infer F];
}
] ? InferVariables | InferVariables | InferVariables : [C] extends [
{
_eq: [infer L, infer R];
}
] ? InferVariables | InferVariables : [C] extends [
{
_datatype: [string, infer Ctx, ...infer V];
}
] ? {
[k in keyof V]: InferVariables;
}[keyof V] : never;
type InstanceFieldContext = [K] extends [keyof ExtractInstanceType] ? ExtractInstanceType[K] extends RBXScriptSignal ? C | undefined : ExtractInstanceType[K] : Component | Component[] | undefined;
type InferInstanceVariables = {
[k in keyof T]-?: InferVariables>;
}[keyof T];
export type InferVariableState> = Reconstruct : never>>;
export {};