@flashist/appframework 0.0.343 → 0.0.344

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -80,6 +80,7 @@ export * from './state/data/AppStateStorage';
80
80
  export * from './state/data/DeepKeyTypings';
81
81
  export * from './state/data/DeepPartialTypings';
82
82
  export * from './state/data/DeepReadableTypings';
83
+ export * from './state/data/DeepTypeUtils';
83
84
  export * from './state/data/IAppStateChangeConfigVO';
84
85
  export * from './state/data/IChangeWrapper';
85
86
  export * from './state/data/IPreChangeHook';
package/index.js CHANGED
@@ -80,6 +80,7 @@ export * from './state/data/AppStateStorage';
80
80
  export * from './state/data/DeepKeyTypings';
81
81
  export * from './state/data/DeepPartialTypings';
82
82
  export * from './state/data/DeepReadableTypings';
83
+ export * from './state/data/DeepTypeUtils';
83
84
  export * from './state/data/IAppStateChangeConfigVO';
84
85
  export * from './state/data/IChangeWrapper';
85
86
  export * from './state/data/IPreChangeHook';
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oCAAoC,CAAC;AACnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qDAAqD,CAAC;AACpE,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC;AACpD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qDAAqD,CAAC;AACpE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yDAAyD,CAAC;AACxE,cAAc,0DAA0D,CAAC;AACzE,cAAc,sEAAsE,CAAC;AACrF,cAAc,+DAA+D,CAAC;AAC9E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,6DAA6D,CAAC;AAC5E,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kDAAkD,CAAC;AACjE,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kCAAkC,CAAC;AACjD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uDAAuD,CAAC;AACtE,cAAc,iDAAiD,CAAC;AAChE,cAAc,uDAAuD,CAAC;AACtE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,+DAA+D,CAAC;AAC9E,cAAc,iDAAiD,CAAC;AAChE,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mDAAmD,CAAC;AAClE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8DAA8D,CAAC;AAC7E,cAAc,oEAAoE,CAAC;AACnF,cAAc,mEAAmE,CAAC;AAClF,cAAc,0DAA0D,CAAC;AACzE,cAAc,mDAAmD,CAAC;AAClE,cAAc,uDAAuD,CAAC;AACtE,cAAc,0CAA0C,CAAC;AACzD,cAAc,+CAA+C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oCAAoC,CAAC;AACnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qDAAqD,CAAC;AACpE,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qCAAqC,CAAC;AACpD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qDAAqD,CAAC;AACpE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yDAAyD,CAAC;AACxE,cAAc,0DAA0D,CAAC;AACzE,cAAc,sEAAsE,CAAC;AACrF,cAAc,+DAA+D,CAAC;AAC9E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,6DAA6D,CAAC;AAC5E,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kDAAkD,CAAC;AACjE,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kCAAkC,CAAC;AACjD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uDAAuD,CAAC;AACtE,cAAc,iDAAiD,CAAC;AAChE,cAAc,uDAAuD,CAAC;AACtE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,+DAA+D,CAAC;AAC9E,cAAc,iDAAiD,CAAC;AAChE,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mDAAmD,CAAC;AAClE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8DAA8D,CAAC;AAC7E,cAAc,oEAAoE,CAAC;AACnF,cAAc,mEAAmE,CAAC;AAClF,cAAc,0DAA0D,CAAC;AACzE,cAAc,mDAAmD,CAAC;AAClE,cAAc,uDAAuD,CAAC;AACtE,cAAc,0CAA0C,CAAC;AACzD,cAAc,+CAA+C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flashist/appframework",
3
- "version": "0.0.343",
3
+ "version": "0.0.344",
4
4
  "scripts": {
5
5
  "build": "gulp",
6
6
  "publish:patch": "npm version patch && npm run build && cd ./dist && npm publish",
@@ -48,10 +48,514 @@ export declare class AppStateStorage extends BaseObjectWithGlobalDispatcher {
48
48
  protected innerSubstitute<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, value: DeepPartial<ValueType>): void;
49
49
  change<StateType extends object>(): <DeepKeyType extends keyof Flatten<StateType>>(key: DeepKeyType, value: DeepPartial<Flatten<StateType>[DeepKeyType]>) => void;
50
50
  protected innerChange<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, value: DeepPartial<ValueType>): void;
51
- delete<StateType extends object>(): <DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType] & Array<any> = Flatten<StateType>[DeepKeyType] & Array<any>>(key: DeepKeyType) => Flatten<StateType, never>[DeepKeyType];
51
+ delete<StateType extends object>(): <DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType] & Array<any> = Flatten<StateType>[DeepKeyType] & Array<any>>(key: DeepKeyType) => (((StateType extends readonly any[] ? Exclude<keyof StateType, keyof any[]> extends never ? {
52
+ [k: `${number}`]: StateType[number];
53
+ } : Omit<StateType, keyof any[]> : StateType) extends infer T ? T extends (StateType extends readonly any[] ? Exclude<keyof StateType, keyof any[]> extends never ? {
54
+ [k: `${number}`]: StateType[number];
55
+ } : Omit<StateType, keyof any[]> : StateType) ? T extends never ? T : { [P in keyof T as (<T_1>() => T_1 extends { [Q in P]: T[P]; } ? 1 : 2) extends <T_1>() => T_1 extends { -readonly [Q in P]: T[P]; } ? 1 : 2 ? P : never]: T[P]; } : never : never) extends infer U ? U extends never ? U : U extends object ? { [K in keyof U]-?: (x: (((0 extends 1 & U[K] ? unknown : U[K] extends infer T_1 ? T_1 extends U[K] ? T_1 extends readonly any[] ? Exclude<keyof T_1, keyof any[]> extends never ? {
56
+ [k: `${number}`]: T_1[number];
57
+ } : Omit<T_1, keyof any[]> : T_1 : never : never) extends infer T_2 ? T_2 extends (0 extends 1 & U[K] ? unknown : U[K] extends infer T_3 ? T_3 extends U[K] ? T_3 extends readonly any[] ? Exclude<keyof T_3, keyof any[]> extends never ? {
58
+ [k: `${number}`]: T_3[number];
59
+ } : Omit<T_3, keyof any[]> : T_3 : never : never) ? T_2 extends never ? T_2 : { [P_1 in keyof T_2 as (<T_3>() => T_3 extends { [Q in P_1]: T_2[P_1]; } ? 1 : 2) extends <T_3>() => T_3 extends { -readonly [Q in P_1]: T_2[P_1]; } ? 1 : 2 ? P_1 : never]: T_2[P_1]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_2 in keyof U]-?: (x: (((0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_4 ? T_4 extends U[K_2] ? T_4 extends readonly any[] ? Exclude<keyof T_4, keyof any[]> extends never ? {
60
+ [k: `${number}`]: T_4[number];
61
+ } : Omit<T_4, keyof any[]> : T_4 : never : never) extends infer T_5 ? T_5 extends (0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_6 ? T_6 extends U[K_2] ? T_6 extends readonly any[] ? Exclude<keyof T_6, keyof any[]> extends never ? {
62
+ [k: `${number}`]: T_6[number];
63
+ } : Omit<T_6, keyof any[]> : T_6 : never : never) ? T_5 extends never ? T_5 : { [P_2 in keyof T_5 as (<T_6>() => T_6 extends { [Q in P_2]: T_5[P_2]; } ? 1 : 2) extends <T_6>() => T_6 extends { -readonly [Q in P_2]: T_5[P_2]; } ? 1 : 2 ? P_2 : never]: T_5[P_2]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_3 in keyof U]-?: (x: (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_7 ? T_7 extends U[K_3] ? T_7 extends readonly any[] ? Exclude<keyof T_7, keyof any[]> extends never ? {
64
+ [k: `${number}`]: T_7[number];
65
+ } : Omit<T_7, keyof any[]> : T_7 : never : never) extends infer T_8 ? T_8 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_9 ? T_9 extends U[K_3] ? T_9 extends readonly any[] ? Exclude<keyof T_9, keyof any[]> extends never ? {
66
+ [k: `${number}`]: T_9[number];
67
+ } : Omit<T_9, keyof any[]> : T_9 : never : never) ? T_8 extends never ? T_8 : { [P_3 in keyof T_8 as (<T_9>() => T_9 extends { [Q in P_3]: T_8[P_3]; } ? 1 : 2) extends <T_9>() => T_9 extends { -readonly [Q in P_3]: T_8[P_3]; } ? 1 : 2 ? P_3 : never]: T_8[P_3]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_4 in keyof U]-?: (x: (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_10 ? T_10 extends U[K_4] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
68
+ [k: `${number}`]: T_10[number];
69
+ } : Omit<T_10, keyof any[]> : T_10 : never : never) extends infer T_11 ? T_11 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_12 ? T_12 extends U[K_4] ? T_12 extends readonly any[] ? Exclude<keyof T_12, keyof any[]> extends never ? {
70
+ [k: `${number}`]: T_12[number];
71
+ } : Omit<T_12, keyof any[]> : T_12 : never : never) ? T_11 extends never ? T_11 : { [P_4 in keyof T_11 as (<T_12>() => T_12 extends { [Q in P_4]: T_11[P_4]; } ? 1 : 2) extends <T_12>() => T_12 extends { -readonly [Q in P_4]: T_11[P_4]; } ? 1 : 2 ? P_4 : never]: T_11[P_4]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_13 ? T_13 extends U[K_5] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
72
+ [k: `${number}`]: T_13[number];
73
+ } : Omit<T_13, keyof any[]> : T_13 : never : never) extends infer T_14 ? T_14 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_15 ? T_15 extends U[K_5] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
74
+ [k: `${number}`]: T_15[number];
75
+ } : Omit<T_15, keyof any[]> : T_15 : never : never) ? T_14 extends never ? T_14 : { [P_5 in keyof T_14 as (<T_15>() => T_15 extends { [Q in P_5]: T_14[P_5]; } ? 1 : 2) extends <T_15>() => T_15 extends { -readonly [Q in P_5]: T_14[P_5]; } ? 1 : 2 ? P_5 : never]: T_14[P_5]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_16 ? T_16 extends U[K_6] ? T_16 extends never ? { [P_6 in K_6]: T_16; } : T_16 extends object ? { [P_7 in keyof T_16 as `${Extract<K_6, string | number>}.${Extract<P_7, string | number>}`]: T_16[P_7]; } : { [P_8 in K_6]: T_16; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_7 in keyof I]: I[K_7]; } : never : U : never) extends infer T_16 ? T_16 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_17 ? T_17 extends U[K_5] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
76
+ [k: `${number}`]: T_17[number];
77
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) extends infer T_18 ? T_18 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_19 ? T_19 extends U[K_5] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
78
+ [k: `${number}`]: T_19[number];
79
+ } : Omit<T_19, keyof any[]> : T_19 : never : never) ? T_18 extends never ? T_18 : { [P_9 in keyof T_18 as (<T_19>() => T_19 extends { [Q in P_9]: T_18[P_9]; } ? 1 : 2) extends <T_19>() => T_19 extends { -readonly [Q in P_9]: T_18[P_9]; } ? 1 : 2 ? P_9 : never]: T_18[P_9]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_20 ? T_20 extends U[K_6] ? T_20 extends never ? { [P_10 in K_6]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_6, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_6]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_7 in keyof I]: I[K_7]; } : never : U : never) ? T_16 extends never ? { [P_6 in K_5]: T_16; } : T_16 extends object ? { [P_7 in keyof T_16 as `${Extract<K_5, string | number>}.${Extract<P_7, string | number>}`]: T_16[P_7]; } : { [P_8 in K_5]: T_16; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_6 in keyof I]: I[K_6]; } : never : U : never) extends infer T_13 ? T_13 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_14 ? T_14 extends U[K_4] ? T_14 extends readonly any[] ? Exclude<keyof T_14, keyof any[]> extends never ? {
80
+ [k: `${number}`]: T_14[number];
81
+ } : Omit<T_14, keyof any[]> : T_14 : never : never) extends infer T_15 ? T_15 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_16 ? T_16 extends U[K_4] ? T_16 extends readonly any[] ? Exclude<keyof T_16, keyof any[]> extends never ? {
82
+ [k: `${number}`]: T_16[number];
83
+ } : Omit<T_16, keyof any[]> : T_16 : never : never) ? T_15 extends never ? T_15 : { [P_8 in keyof T_15 as (<T_16>() => T_16 extends { [Q in P_8]: T_15[P_8]; } ? 1 : 2) extends <T_16>() => T_16 extends { -readonly [Q in P_8]: T_15[P_8]; } ? 1 : 2 ? P_8 : never]: T_15[P_8]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_17 ? T_17 extends U[K_5] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
84
+ [k: `${number}`]: T_17[number];
85
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) extends infer T_18 ? T_18 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_19 ? T_19 extends U[K_5] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
86
+ [k: `${number}`]: T_19[number];
87
+ } : Omit<T_19, keyof any[]> : T_19 : never : never) ? T_18 extends never ? T_18 : { [P_9 in keyof T_18 as (<T_19>() => T_19 extends { [Q in P_9]: T_18[P_9]; } ? 1 : 2) extends <T_19>() => T_19 extends { -readonly [Q in P_9]: T_18[P_9]; } ? 1 : 2 ? P_9 : never]: T_18[P_9]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_20 ? T_20 extends U[K_7] ? T_20 extends never ? { [P_10 in K_7]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_7, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_7]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_6 in keyof I]: I[K_6]; } : never : U : never) extends infer T_20 ? T_20 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_21 ? T_21 extends U[K_5] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
88
+ [k: `${number}`]: T_21[number];
89
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_23 ? T_23 extends U[K_5] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
90
+ [k: `${number}`]: T_23[number];
91
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_6 in keyof I]: I[K_6]; } : never : U : never) ? T_20 extends never ? { [P_10 in K_5]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_5, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_5]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_6 in keyof I]: I[K_6]; } : never : U : never) ? T_13 extends never ? { [P_5 in K_4]: T_13; } : T_13 extends object ? { [P_6 in keyof T_13 as `${Extract<K_4, string | number>}.${Extract<P_6, string | number>}`]: T_13[P_6]; } : { [P_7 in K_4]: T_13; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) extends infer T_10 ? T_10 extends (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_11 ? T_11 extends U[K_3] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
92
+ [k: `${number}`]: T_11[number];
93
+ } : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_13 ? T_13 extends U[K_3] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
94
+ [k: `${number}`]: T_13[number];
95
+ } : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_4 in keyof U]-?: (x: (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_14 ? T_14 extends U[K_4] ? T_14 extends readonly any[] ? Exclude<keyof T_14, keyof any[]> extends never ? {
96
+ [k: `${number}`]: T_14[number];
97
+ } : Omit<T_14, keyof any[]> : T_14 : never : never) extends infer T_15 ? T_15 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_16 ? T_16 extends U[K_4] ? T_16 extends readonly any[] ? Exclude<keyof T_16, keyof any[]> extends never ? {
98
+ [k: `${number}`]: T_16[number];
99
+ } : Omit<T_16, keyof any[]> : T_16 : never : never) ? T_15 extends never ? T_15 : { [P_8 in keyof T_15 as (<T_16>() => T_16 extends { [Q in P_8]: T_15[P_8]; } ? 1 : 2) extends <T_16>() => T_16 extends { -readonly [Q in P_8]: T_15[P_8]; } ? 1 : 2 ? P_8 : never]: T_15[P_8]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_17 ? T_17 extends U[K_6] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
100
+ [k: `${number}`]: T_17[number];
101
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) extends infer T_18 ? T_18 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_19 ? T_19 extends U[K_6] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
102
+ [k: `${number}`]: T_19[number];
103
+ } : Omit<T_19, keyof any[]> : T_19 : never : never) ? T_18 extends never ? T_18 : { [P_9 in keyof T_18 as (<T_19>() => T_19 extends { [Q in P_9]: T_18[P_9]; } ? 1 : 2) extends <T_19>() => T_19 extends { -readonly [Q in P_9]: T_18[P_9]; } ? 1 : 2 ? P_9 : never]: T_18[P_9]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_20 ? T_20 extends U[K_7] ? T_20 extends never ? { [P_10 in K_7]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_7, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_7]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) extends infer T_20 ? T_20 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
104
+ [k: `${number}`]: T_21[number];
105
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
106
+ [k: `${number}`]: T_23[number];
107
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) ? T_20 extends never ? { [P_10 in K_6]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_6, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_6]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) extends infer T_17 ? T_17 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_18 ? T_18 extends U[K_4] ? T_18 extends readonly any[] ? Exclude<keyof T_18, keyof any[]> extends never ? {
108
+ [k: `${number}`]: T_18[number];
109
+ } : Omit<T_18, keyof any[]> : T_18 : never : never) extends infer T_19 ? T_19 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_20 ? T_20 extends U[K_4] ? T_20 extends readonly any[] ? Exclude<keyof T_20, keyof any[]> extends never ? {
110
+ [k: `${number}`]: T_20[number];
111
+ } : Omit<T_20, keyof any[]> : T_20 : never : never) ? T_19 extends never ? T_19 : { [P_12 in keyof T_19 as (<T_20>() => T_20 extends { [Q in P_12]: T_19[P_12]; } ? 1 : 2) extends <T_20>() => T_20 extends { -readonly [Q in P_12]: T_19[P_12]; } ? 1 : 2 ? P_12 : never]: T_19[P_12]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
112
+ [k: `${number}`]: T_21[number];
113
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
114
+ [k: `${number}`]: T_23[number];
115
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) extends infer T_24 ? T_24 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
116
+ [k: `${number}`]: T_25[number];
117
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
118
+ [k: `${number}`]: T_27[number];
119
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) ? T_24 extends never ? { [P_14 in K_6]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_6, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_6]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) ? T_17 extends never ? { [P_9 in K_4]: T_17; } : T_17 extends object ? { [P_10 in keyof T_17 as `${Extract<K_4, string | number>}.${Extract<P_10, string | number>}`]: T_17[P_10]; } : { [P_11 in K_4]: T_17; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) ? T_10 extends never ? { [P_4 in K_3]: T_10; } : T_10 extends object ? { [P_5 in keyof T_10 as `${Extract<K_3, string | number>}.${Extract<P_5, string | number>}`]: T_10[P_5]; } : { [P_6 in K_3]: T_10; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_7 ? T_7 extends (((0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_8 ? T_8 extends U[K_2] ? T_8 extends readonly any[] ? Exclude<keyof T_8, keyof any[]> extends never ? {
120
+ [k: `${number}`]: T_8[number];
121
+ } : Omit<T_8, keyof any[]> : T_8 : never : never) extends infer T_9 ? T_9 extends (0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_10 ? T_10 extends U[K_2] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
122
+ [k: `${number}`]: T_10[number];
123
+ } : Omit<T_10, keyof any[]> : T_10 : never : never) ? T_9 extends never ? T_9 : { [P_6 in keyof T_9 as (<T_10>() => T_10 extends { [Q in P_6]: T_9[P_6]; } ? 1 : 2) extends <T_10>() => T_10 extends { -readonly [Q in P_6]: T_9[P_6]; } ? 1 : 2 ? P_6 : never]: T_9[P_6]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_3 in keyof U]-?: (x: (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_11 ? T_11 extends U[K_3] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
124
+ [k: `${number}`]: T_11[number];
125
+ } : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_13 ? T_13 extends U[K_3] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
126
+ [k: `${number}`]: T_13[number];
127
+ } : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_14 ? T_14 extends U[K_5] ? T_14 extends readonly any[] ? Exclude<keyof T_14, keyof any[]> extends never ? {
128
+ [k: `${number}`]: T_14[number];
129
+ } : Omit<T_14, keyof any[]> : T_14 : never : never) extends infer T_15 ? T_15 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_16 ? T_16 extends U[K_5] ? T_16 extends readonly any[] ? Exclude<keyof T_16, keyof any[]> extends never ? {
130
+ [k: `${number}`]: T_16[number];
131
+ } : Omit<T_16, keyof any[]> : T_16 : never : never) ? T_15 extends never ? T_15 : { [P_8 in keyof T_15 as (<T_16>() => T_16 extends { [Q in P_8]: T_15[P_8]; } ? 1 : 2) extends <T_16>() => T_16 extends { -readonly [Q in P_8]: T_15[P_8]; } ? 1 : 2 ? P_8 : never]: T_15[P_8]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_17 ? T_17 extends U[K_6] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
132
+ [k: `${number}`]: T_17[number];
133
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) extends infer T_18 ? T_18 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_19 ? T_19 extends U[K_6] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
134
+ [k: `${number}`]: T_19[number];
135
+ } : Omit<T_19, keyof any[]> : T_19 : never : never) ? T_18 extends never ? T_18 : { [P_9 in keyof T_18 as (<T_19>() => T_19 extends { [Q in P_9]: T_18[P_9]; } ? 1 : 2) extends <T_19>() => T_19 extends { -readonly [Q in P_9]: T_18[P_9]; } ? 1 : 2 ? P_9 : never]: T_18[P_9]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_20 ? T_20 extends U[K_7] ? T_20 extends never ? { [P_10 in K_7]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_7, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_7]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_20 ? T_20 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
136
+ [k: `${number}`]: T_21[number];
137
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
138
+ [k: `${number}`]: T_23[number];
139
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_20 extends never ? { [P_10 in K_6]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_6, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_6]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_17 ? T_17 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_18 ? T_18 extends U[K_5] ? T_18 extends readonly any[] ? Exclude<keyof T_18, keyof any[]> extends never ? {
140
+ [k: `${number}`]: T_18[number];
141
+ } : Omit<T_18, keyof any[]> : T_18 : never : never) extends infer T_19 ? T_19 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_20 ? T_20 extends U[K_5] ? T_20 extends readonly any[] ? Exclude<keyof T_20, keyof any[]> extends never ? {
142
+ [k: `${number}`]: T_20[number];
143
+ } : Omit<T_20, keyof any[]> : T_20 : never : never) ? T_19 extends never ? T_19 : { [P_12 in keyof T_19 as (<T_20>() => T_20 extends { [Q in P_12]: T_19[P_12]; } ? 1 : 2) extends <T_20>() => T_20 extends { -readonly [Q in P_12]: T_19[P_12]; } ? 1 : 2 ? P_12 : never]: T_19[P_12]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
144
+ [k: `${number}`]: T_21[number];
145
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
146
+ [k: `${number}`]: T_23[number];
147
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_24 ? T_24 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
148
+ [k: `${number}`]: T_25[number];
149
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
150
+ [k: `${number}`]: T_27[number];
151
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_24 extends never ? { [P_14 in K_6]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_6, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_6]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_17 extends never ? { [P_9 in K_5]: T_17; } : T_17 extends object ? { [P_10 in keyof T_17 as `${Extract<K_5, string | number>}.${Extract<P_10, string | number>}`]: T_17[P_10]; } : { [P_11 in K_5]: T_17; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_14 ? T_14 extends (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_15 ? T_15 extends U[K_3] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
152
+ [k: `${number}`]: T_15[number];
153
+ } : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_17 ? T_17 extends U[K_3] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
154
+ [k: `${number}`]: T_17[number];
155
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_18 ? T_18 extends U[K_5] ? T_18 extends readonly any[] ? Exclude<keyof T_18, keyof any[]> extends never ? {
156
+ [k: `${number}`]: T_18[number];
157
+ } : Omit<T_18, keyof any[]> : T_18 : never : never) extends infer T_19 ? T_19 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_20 ? T_20 extends U[K_5] ? T_20 extends readonly any[] ? Exclude<keyof T_20, keyof any[]> extends never ? {
158
+ [k: `${number}`]: T_20[number];
159
+ } : Omit<T_20, keyof any[]> : T_20 : never : never) ? T_19 extends never ? T_19 : { [P_12 in keyof T_19 as (<T_20>() => T_20 extends { [Q in P_12]: T_19[P_12]; } ? 1 : 2) extends <T_20>() => T_20 extends { -readonly [Q in P_12]: T_19[P_12]; } ? 1 : 2 ? P_12 : never]: T_19[P_12]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
160
+ [k: `${number}`]: T_21[number];
161
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
162
+ [k: `${number}`]: T_23[number];
163
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_24 ? T_24 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
164
+ [k: `${number}`]: T_25[number];
165
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
166
+ [k: `${number}`]: T_27[number];
167
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_24 extends never ? { [P_14 in K_6]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_6, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_6]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_21 ? T_21 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_22 ? T_22 extends U[K_5] ? T_22 extends readonly any[] ? Exclude<keyof T_22, keyof any[]> extends never ? {
168
+ [k: `${number}`]: T_22[number];
169
+ } : Omit<T_22, keyof any[]> : T_22 : never : never) extends infer T_23 ? T_23 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_24 ? T_24 extends U[K_5] ? T_24 extends readonly any[] ? Exclude<keyof T_24, keyof any[]> extends never ? {
170
+ [k: `${number}`]: T_24[number];
171
+ } : Omit<T_24, keyof any[]> : T_24 : never : never) ? T_23 extends never ? T_23 : { [P_16 in keyof T_23 as (<T_24>() => T_24 extends { [Q in P_16]: T_23[P_16]; } ? 1 : 2) extends <T_24>() => T_24 extends { -readonly [Q in P_16]: T_23[P_16]; } ? 1 : 2 ? P_16 : never]: T_23[P_16]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
172
+ [k: `${number}`]: T_25[number];
173
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
174
+ [k: `${number}`]: T_27[number];
175
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_28 ? T_28 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_29 ? T_29 extends U[K_6] ? T_29 extends readonly any[] ? Exclude<keyof T_29, keyof any[]> extends never ? {
176
+ [k: `${number}`]: T_29[number];
177
+ } : Omit<T_29, keyof any[]> : T_29 : never : never) extends infer T_30 ? T_30 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_31 ? T_31 extends U[K_6] ? T_31 extends readonly any[] ? Exclude<keyof T_31, keyof any[]> extends never ? {
178
+ [k: `${number}`]: T_31[number];
179
+ } : Omit<T_31, keyof any[]> : T_31 : never : never) ? T_30 extends never ? T_30 : { [P_21 in keyof T_30 as (<T_31>() => T_31 extends { [Q in P_21]: T_30[P_21]; } ? 1 : 2) extends <T_31>() => T_31 extends { -readonly [Q in P_21]: T_30[P_21]; } ? 1 : 2 ? P_21 : never]: T_30[P_21]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_32 ? T_32 extends U[K_7] ? T_32 extends never ? { [P_22 in K_7]: T_32; } : T_32 extends object ? { [P_23 in keyof T_32 as `${Extract<K_7, string | number>}.${Extract<P_23, string | number>}`]: T_32[P_23]; } : { [P_24 in K_7]: T_32; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_28 extends never ? { [P_18 in K_6]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_6, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_6]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_21 extends never ? { [P_13 in K_5]: T_21; } : T_21 extends object ? { [P_14 in keyof T_21 as `${Extract<K_5, string | number>}.${Extract<P_14, string | number>}`]: T_21[P_14]; } : { [P_15 in K_5]: T_21; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_14 extends never ? { [P_8 in K_3]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_3, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_3]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_7 extends never ? { [P_3 in K_2]: T_7; } : T_7 extends object ? { [P_4 in keyof T_7 as `${Extract<K_2, string | number>}.${Extract<P_4, string | number>}`]: T_7[P_4]; } : { [P_5 in K_2]: T_7; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_4 ? T_4 extends (((0 extends 1 & U[K] ? unknown : U[K] extends infer T_5 ? T_5 extends U[K] ? T_5 extends readonly any[] ? Exclude<keyof T_5, keyof any[]> extends never ? {
180
+ [k: `${number}`]: T_5[number];
181
+ } : Omit<T_5, keyof any[]> : T_5 : never : never) extends infer T_6 ? T_6 extends (0 extends 1 & U[K] ? unknown : U[K] extends infer T_7 ? T_7 extends U[K] ? T_7 extends readonly any[] ? Exclude<keyof T_7, keyof any[]> extends never ? {
182
+ [k: `${number}`]: T_7[number];
183
+ } : Omit<T_7, keyof any[]> : T_7 : never : never) ? T_6 extends never ? T_6 : { [P_5 in keyof T_6 as (<T_7>() => T_7 extends { [Q in P_5]: T_6[P_5]; } ? 1 : 2) extends <T_7>() => T_7 extends { -readonly [Q in P_5]: T_6[P_5]; } ? 1 : 2 ? P_5 : never]: T_6[P_5]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_2 in keyof U]-?: (x: (((0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_8 ? T_8 extends U[K_2] ? T_8 extends readonly any[] ? Exclude<keyof T_8, keyof any[]> extends never ? {
184
+ [k: `${number}`]: T_8[number];
185
+ } : Omit<T_8, keyof any[]> : T_8 : never : never) extends infer T_9 ? T_9 extends (0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_10 ? T_10 extends U[K_2] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
186
+ [k: `${number}`]: T_10[number];
187
+ } : Omit<T_10, keyof any[]> : T_10 : never : never) ? T_9 extends never ? T_9 : { [P_6 in keyof T_9 as (<T_10>() => T_10 extends { [Q in P_6]: T_9[P_6]; } ? 1 : 2) extends <T_10>() => T_10 extends { -readonly [Q in P_6]: T_9[P_6]; } ? 1 : 2 ? P_6 : never]: T_9[P_6]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_4 in keyof U]-?: (x: (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_11 ? T_11 extends U[K_4] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
188
+ [k: `${number}`]: T_11[number];
189
+ } : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_13 ? T_13 extends U[K_4] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
190
+ [k: `${number}`]: T_13[number];
191
+ } : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_14 ? T_14 extends U[K_5] ? T_14 extends readonly any[] ? Exclude<keyof T_14, keyof any[]> extends never ? {
192
+ [k: `${number}`]: T_14[number];
193
+ } : Omit<T_14, keyof any[]> : T_14 : never : never) extends infer T_15 ? T_15 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_16 ? T_16 extends U[K_5] ? T_16 extends readonly any[] ? Exclude<keyof T_16, keyof any[]> extends never ? {
194
+ [k: `${number}`]: T_16[number];
195
+ } : Omit<T_16, keyof any[]> : T_16 : never : never) ? T_15 extends never ? T_15 : { [P_8 in keyof T_15 as (<T_16>() => T_16 extends { [Q in P_8]: T_15[P_8]; } ? 1 : 2) extends <T_16>() => T_16 extends { -readonly [Q in P_8]: T_15[P_8]; } ? 1 : 2 ? P_8 : never]: T_15[P_8]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_17 ? T_17 extends U[K_6] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
196
+ [k: `${number}`]: T_17[number];
197
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) extends infer T_18 ? T_18 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_19 ? T_19 extends U[K_6] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
198
+ [k: `${number}`]: T_19[number];
199
+ } : Omit<T_19, keyof any[]> : T_19 : never : never) ? T_18 extends never ? T_18 : { [P_9 in keyof T_18 as (<T_19>() => T_19 extends { [Q in P_9]: T_18[P_9]; } ? 1 : 2) extends <T_19>() => T_19 extends { -readonly [Q in P_9]: T_18[P_9]; } ? 1 : 2 ? P_9 : never]: T_18[P_9]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_20 ? T_20 extends U[K_7] ? T_20 extends never ? { [P_10 in K_7]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_7, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_7]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_20 ? T_20 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
200
+ [k: `${number}`]: T_21[number];
201
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
202
+ [k: `${number}`]: T_23[number];
203
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_20 extends never ? { [P_10 in K_6]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_6, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_6]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_17 ? T_17 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_18 ? T_18 extends U[K_5] ? T_18 extends readonly any[] ? Exclude<keyof T_18, keyof any[]> extends never ? {
204
+ [k: `${number}`]: T_18[number];
205
+ } : Omit<T_18, keyof any[]> : T_18 : never : never) extends infer T_19 ? T_19 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_20 ? T_20 extends U[K_5] ? T_20 extends readonly any[] ? Exclude<keyof T_20, keyof any[]> extends never ? {
206
+ [k: `${number}`]: T_20[number];
207
+ } : Omit<T_20, keyof any[]> : T_20 : never : never) ? T_19 extends never ? T_19 : { [P_12 in keyof T_19 as (<T_20>() => T_20 extends { [Q in P_12]: T_19[P_12]; } ? 1 : 2) extends <T_20>() => T_20 extends { -readonly [Q in P_12]: T_19[P_12]; } ? 1 : 2 ? P_12 : never]: T_19[P_12]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
208
+ [k: `${number}`]: T_21[number];
209
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
210
+ [k: `${number}`]: T_23[number];
211
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_24 ? T_24 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
212
+ [k: `${number}`]: T_25[number];
213
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
214
+ [k: `${number}`]: T_27[number];
215
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_24 extends never ? { [P_14 in K_6]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_6, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_6]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_17 extends never ? { [P_9 in K_5]: T_17; } : T_17 extends object ? { [P_10 in keyof T_17 as `${Extract<K_5, string | number>}.${Extract<P_10, string | number>}`]: T_17[P_10]; } : { [P_11 in K_5]: T_17; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_14 ? T_14 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_15 ? T_15 extends U[K_4] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
216
+ [k: `${number}`]: T_15[number];
217
+ } : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_17 ? T_17 extends U[K_4] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
218
+ [k: `${number}`]: T_17[number];
219
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_18 ? T_18 extends U[K_5] ? T_18 extends readonly any[] ? Exclude<keyof T_18, keyof any[]> extends never ? {
220
+ [k: `${number}`]: T_18[number];
221
+ } : Omit<T_18, keyof any[]> : T_18 : never : never) extends infer T_19 ? T_19 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_20 ? T_20 extends U[K_5] ? T_20 extends readonly any[] ? Exclude<keyof T_20, keyof any[]> extends never ? {
222
+ [k: `${number}`]: T_20[number];
223
+ } : Omit<T_20, keyof any[]> : T_20 : never : never) ? T_19 extends never ? T_19 : { [P_12 in keyof T_19 as (<T_20>() => T_20 extends { [Q in P_12]: T_19[P_12]; } ? 1 : 2) extends <T_20>() => T_20 extends { -readonly [Q in P_12]: T_19[P_12]; } ? 1 : 2 ? P_12 : never]: T_19[P_12]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
224
+ [k: `${number}`]: T_21[number];
225
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
226
+ [k: `${number}`]: T_23[number];
227
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_24 ? T_24 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
228
+ [k: `${number}`]: T_25[number];
229
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
230
+ [k: `${number}`]: T_27[number];
231
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_24 extends never ? { [P_14 in K_6]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_6, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_6]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_21 ? T_21 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_22 ? T_22 extends U[K_5] ? T_22 extends readonly any[] ? Exclude<keyof T_22, keyof any[]> extends never ? {
232
+ [k: `${number}`]: T_22[number];
233
+ } : Omit<T_22, keyof any[]> : T_22 : never : never) extends infer T_23 ? T_23 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_24 ? T_24 extends U[K_5] ? T_24 extends readonly any[] ? Exclude<keyof T_24, keyof any[]> extends never ? {
234
+ [k: `${number}`]: T_24[number];
235
+ } : Omit<T_24, keyof any[]> : T_24 : never : never) ? T_23 extends never ? T_23 : { [P_16 in keyof T_23 as (<T_24>() => T_24 extends { [Q in P_16]: T_23[P_16]; } ? 1 : 2) extends <T_24>() => T_24 extends { -readonly [Q in P_16]: T_23[P_16]; } ? 1 : 2 ? P_16 : never]: T_23[P_16]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
236
+ [k: `${number}`]: T_25[number];
237
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
238
+ [k: `${number}`]: T_27[number];
239
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_28 ? T_28 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_29 ? T_29 extends U[K_6] ? T_29 extends readonly any[] ? Exclude<keyof T_29, keyof any[]> extends never ? {
240
+ [k: `${number}`]: T_29[number];
241
+ } : Omit<T_29, keyof any[]> : T_29 : never : never) extends infer T_30 ? T_30 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_31 ? T_31 extends U[K_6] ? T_31 extends readonly any[] ? Exclude<keyof T_31, keyof any[]> extends never ? {
242
+ [k: `${number}`]: T_31[number];
243
+ } : Omit<T_31, keyof any[]> : T_31 : never : never) ? T_30 extends never ? T_30 : { [P_21 in keyof T_30 as (<T_31>() => T_31 extends { [Q in P_21]: T_30[P_21]; } ? 1 : 2) extends <T_31>() => T_31 extends { -readonly [Q in P_21]: T_30[P_21]; } ? 1 : 2 ? P_21 : never]: T_30[P_21]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_32 ? T_32 extends U[K_7] ? T_32 extends never ? { [P_22 in K_7]: T_32; } : T_32 extends object ? { [P_23 in keyof T_32 as `${Extract<K_7, string | number>}.${Extract<P_23, string | number>}`]: T_32[P_23]; } : { [P_24 in K_7]: T_32; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_28 extends never ? { [P_18 in K_6]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_6, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_6]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_21 extends never ? { [P_13 in K_5]: T_21; } : T_21 extends object ? { [P_14 in keyof T_21 as `${Extract<K_5, string | number>}.${Extract<P_14, string | number>}`]: T_21[P_14]; } : { [P_15 in K_5]: T_21; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_14 extends never ? { [P_8 in K_4]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_4, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_4]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_11 ? T_11 extends (((0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_12 ? T_12 extends U[K_2] ? T_12 extends readonly any[] ? Exclude<keyof T_12, keyof any[]> extends never ? {
244
+ [k: `${number}`]: T_12[number];
245
+ } : Omit<T_12, keyof any[]> : T_12 : never : never) extends infer T_13 ? T_13 extends (0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_14 ? T_14 extends U[K_2] ? T_14 extends readonly any[] ? Exclude<keyof T_14, keyof any[]> extends never ? {
246
+ [k: `${number}`]: T_14[number];
247
+ } : Omit<T_14, keyof any[]> : T_14 : never : never) ? T_13 extends never ? T_13 : { [P_10 in keyof T_13 as (<T_14>() => T_14 extends { [Q in P_10]: T_13[P_10]; } ? 1 : 2) extends <T_14>() => T_14 extends { -readonly [Q in P_10]: T_13[P_10]; } ? 1 : 2 ? P_10 : never]: T_13[P_10]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_4 in keyof U]-?: (x: (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_15 ? T_15 extends U[K_4] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
248
+ [k: `${number}`]: T_15[number];
249
+ } : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_17 ? T_17 extends U[K_4] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
250
+ [k: `${number}`]: T_17[number];
251
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_18 ? T_18 extends U[K_5] ? T_18 extends readonly any[] ? Exclude<keyof T_18, keyof any[]> extends never ? {
252
+ [k: `${number}`]: T_18[number];
253
+ } : Omit<T_18, keyof any[]> : T_18 : never : never) extends infer T_19 ? T_19 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_20 ? T_20 extends U[K_5] ? T_20 extends readonly any[] ? Exclude<keyof T_20, keyof any[]> extends never ? {
254
+ [k: `${number}`]: T_20[number];
255
+ } : Omit<T_20, keyof any[]> : T_20 : never : never) ? T_19 extends never ? T_19 : { [P_12 in keyof T_19 as (<T_20>() => T_20 extends { [Q in P_12]: T_19[P_12]; } ? 1 : 2) extends <T_20>() => T_20 extends { -readonly [Q in P_12]: T_19[P_12]; } ? 1 : 2 ? P_12 : never]: T_19[P_12]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
256
+ [k: `${number}`]: T_21[number];
257
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
258
+ [k: `${number}`]: T_23[number];
259
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_24 ? T_24 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
260
+ [k: `${number}`]: T_25[number];
261
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
262
+ [k: `${number}`]: T_27[number];
263
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_24 extends never ? { [P_14 in K_6]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_6, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_6]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_21 ? T_21 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_22 ? T_22 extends U[K_5] ? T_22 extends readonly any[] ? Exclude<keyof T_22, keyof any[]> extends never ? {
264
+ [k: `${number}`]: T_22[number];
265
+ } : Omit<T_22, keyof any[]> : T_22 : never : never) extends infer T_23 ? T_23 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_24 ? T_24 extends U[K_5] ? T_24 extends readonly any[] ? Exclude<keyof T_24, keyof any[]> extends never ? {
266
+ [k: `${number}`]: T_24[number];
267
+ } : Omit<T_24, keyof any[]> : T_24 : never : never) ? T_23 extends never ? T_23 : { [P_16 in keyof T_23 as (<T_24>() => T_24 extends { [Q in P_16]: T_23[P_16]; } ? 1 : 2) extends <T_24>() => T_24 extends { -readonly [Q in P_16]: T_23[P_16]; } ? 1 : 2 ? P_16 : never]: T_23[P_16]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
268
+ [k: `${number}`]: T_25[number];
269
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
270
+ [k: `${number}`]: T_27[number];
271
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_28 ? T_28 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_29 ? T_29 extends U[K_6] ? T_29 extends readonly any[] ? Exclude<keyof T_29, keyof any[]> extends never ? {
272
+ [k: `${number}`]: T_29[number];
273
+ } : Omit<T_29, keyof any[]> : T_29 : never : never) extends infer T_30 ? T_30 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_31 ? T_31 extends U[K_6] ? T_31 extends readonly any[] ? Exclude<keyof T_31, keyof any[]> extends never ? {
274
+ [k: `${number}`]: T_31[number];
275
+ } : Omit<T_31, keyof any[]> : T_31 : never : never) ? T_30 extends never ? T_30 : { [P_21 in keyof T_30 as (<T_31>() => T_31 extends { [Q in P_21]: T_30[P_21]; } ? 1 : 2) extends <T_31>() => T_31 extends { -readonly [Q in P_21]: T_30[P_21]; } ? 1 : 2 ? P_21 : never]: T_30[P_21]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_32 ? T_32 extends U[K_7] ? T_32 extends never ? { [P_22 in K_7]: T_32; } : T_32 extends object ? { [P_23 in keyof T_32 as `${Extract<K_7, string | number>}.${Extract<P_23, string | number>}`]: T_32[P_23]; } : { [P_24 in K_7]: T_32; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_28 extends never ? { [P_18 in K_6]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_6, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_6]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_21 extends never ? { [P_13 in K_5]: T_21; } : T_21 extends object ? { [P_14 in keyof T_21 as `${Extract<K_5, string | number>}.${Extract<P_14, string | number>}`]: T_21[P_14]; } : { [P_15 in K_5]: T_21; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_18 ? T_18 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_19 ? T_19 extends U[K_4] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
276
+ [k: `${number}`]: T_19[number];
277
+ } : Omit<T_19, keyof any[]> : T_19 : never : never) extends infer T_20 ? T_20 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_21 ? T_21 extends U[K_4] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
278
+ [k: `${number}`]: T_21[number];
279
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) ? T_20 extends never ? T_20 : { [P_15 in keyof T_20 as (<T_21>() => T_21 extends { [Q in P_15]: T_20[P_15]; } ? 1 : 2) extends <T_21>() => T_21 extends { -readonly [Q in P_15]: T_20[P_15]; } ? 1 : 2 ? P_15 : never]: T_20[P_15]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_22 ? T_22 extends U[K_5] ? T_22 extends readonly any[] ? Exclude<keyof T_22, keyof any[]> extends never ? {
280
+ [k: `${number}`]: T_22[number];
281
+ } : Omit<T_22, keyof any[]> : T_22 : never : never) extends infer T_23 ? T_23 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_24 ? T_24 extends U[K_5] ? T_24 extends readonly any[] ? Exclude<keyof T_24, keyof any[]> extends never ? {
282
+ [k: `${number}`]: T_24[number];
283
+ } : Omit<T_24, keyof any[]> : T_24 : never : never) ? T_23 extends never ? T_23 : { [P_16 in keyof T_23 as (<T_24>() => T_24 extends { [Q in P_16]: T_23[P_16]; } ? 1 : 2) extends <T_24>() => T_24 extends { -readonly [Q in P_16]: T_23[P_16]; } ? 1 : 2 ? P_16 : never]: T_23[P_16]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
284
+ [k: `${number}`]: T_25[number];
285
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
286
+ [k: `${number}`]: T_27[number];
287
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_28 ? T_28 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_29 ? T_29 extends U[K_6] ? T_29 extends readonly any[] ? Exclude<keyof T_29, keyof any[]> extends never ? {
288
+ [k: `${number}`]: T_29[number];
289
+ } : Omit<T_29, keyof any[]> : T_29 : never : never) extends infer T_30 ? T_30 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_31 ? T_31 extends U[K_6] ? T_31 extends readonly any[] ? Exclude<keyof T_31, keyof any[]> extends never ? {
290
+ [k: `${number}`]: T_31[number];
291
+ } : Omit<T_31, keyof any[]> : T_31 : never : never) ? T_30 extends never ? T_30 : { [P_21 in keyof T_30 as (<T_31>() => T_31 extends { [Q in P_21]: T_30[P_21]; } ? 1 : 2) extends <T_31>() => T_31 extends { -readonly [Q in P_21]: T_30[P_21]; } ? 1 : 2 ? P_21 : never]: T_30[P_21]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_32 ? T_32 extends U[K_7] ? T_32 extends never ? { [P_22 in K_7]: T_32; } : T_32 extends object ? { [P_23 in keyof T_32 as `${Extract<K_7, string | number>}.${Extract<P_23, string | number>}`]: T_32[P_23]; } : { [P_24 in K_7]: T_32; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_28 extends never ? { [P_18 in K_6]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_6, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_6]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_25 ? T_25 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_26 ? T_26 extends U[K_5] ? T_26 extends readonly any[] ? Exclude<keyof T_26, keyof any[]> extends never ? {
292
+ [k: `${number}`]: T_26[number];
293
+ } : Omit<T_26, keyof any[]> : T_26 : never : never) extends infer T_27 ? T_27 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_28 ? T_28 extends U[K_5] ? T_28 extends readonly any[] ? Exclude<keyof T_28, keyof any[]> extends never ? {
294
+ [k: `${number}`]: T_28[number];
295
+ } : Omit<T_28, keyof any[]> : T_28 : never : never) ? T_27 extends never ? T_27 : { [P_20 in keyof T_27 as (<T_28>() => T_28 extends { [Q in P_20]: T_27[P_20]; } ? 1 : 2) extends <T_28>() => T_28 extends { -readonly [Q in P_20]: T_27[P_20]; } ? 1 : 2 ? P_20 : never]: T_27[P_20]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_29 ? T_29 extends U[K_6] ? T_29 extends readonly any[] ? Exclude<keyof T_29, keyof any[]> extends never ? {
296
+ [k: `${number}`]: T_29[number];
297
+ } : Omit<T_29, keyof any[]> : T_29 : never : never) extends infer T_30 ? T_30 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_31 ? T_31 extends U[K_6] ? T_31 extends readonly any[] ? Exclude<keyof T_31, keyof any[]> extends never ? {
298
+ [k: `${number}`]: T_31[number];
299
+ } : Omit<T_31, keyof any[]> : T_31 : never : never) ? T_30 extends never ? T_30 : { [P_21 in keyof T_30 as (<T_31>() => T_31 extends { [Q in P_21]: T_30[P_21]; } ? 1 : 2) extends <T_31>() => T_31 extends { -readonly [Q in P_21]: T_30[P_21]; } ? 1 : 2 ? P_21 : never]: T_30[P_21]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_32 ? T_32 extends U[K_7] ? T_32 extends never ? { [P_22 in K_7]: T_32; } : T_32 extends object ? { [P_23 in keyof T_32 as `${Extract<K_7, string | number>}.${Extract<P_23, string | number>}`]: T_32[P_23]; } : { [P_24 in K_7]: T_32; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_32 ? T_32 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_33 ? T_33 extends U[K_6] ? T_33 extends readonly any[] ? Exclude<keyof T_33, keyof any[]> extends never ? {
300
+ [k: `${number}`]: T_33[number];
301
+ } : Omit<T_33, keyof any[]> : T_33 : never : never) extends infer T_34 ? T_34 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_35 ? T_35 extends U[K_6] ? T_35 extends readonly any[] ? Exclude<keyof T_35, keyof any[]> extends never ? {
302
+ [k: `${number}`]: T_35[number];
303
+ } : Omit<T_35, keyof any[]> : T_35 : never : never) ? T_34 extends never ? T_34 : { [P_25 in keyof T_34 as (<T_35>() => T_35 extends { [Q in P_25]: T_34[P_25]; } ? 1 : 2) extends <T_35>() => T_35 extends { -readonly [Q in P_25]: T_34[P_25]; } ? 1 : 2 ? P_25 : never]: T_34[P_25]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_36 ? T_36 extends U[K_7] ? T_36 extends never ? { [P_26 in K_7]: T_36; } : T_36 extends object ? { [P_27 in keyof T_36 as `${Extract<K_7, string | number>}.${Extract<P_27, string | number>}`]: T_36[P_27]; } : { [P_28 in K_7]: T_36; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_32 extends never ? { [P_22 in K_6]: T_32; } : T_32 extends object ? { [P_23 in keyof T_32 as `${Extract<K_6, string | number>}.${Extract<P_23, string | number>}`]: T_32[P_23]; } : { [P_24 in K_6]: T_32; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_25 extends never ? { [P_17 in K_5]: T_25; } : T_25 extends object ? { [P_18 in keyof T_25 as `${Extract<K_5, string | number>}.${Extract<P_18, string | number>}`]: T_25[P_18]; } : { [P_19 in K_5]: T_25; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_18 extends never ? { [P_12 in K_4]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_4, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_4]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_11 extends never ? { [P_7 in K_2]: T_11; } : T_11 extends object ? { [P_8 in keyof T_11 as `${Extract<K_2, string | number>}.${Extract<P_8, string | number>}`]: T_11[P_8]; } : { [P_9 in K_2]: T_11; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_4 extends never ? { [P_2 in K]: T_4; } : T_4 extends object ? { [P_3 in keyof T_4 as `${Extract<K, string | number>}.${Extract<P_3, string | number>}`]: T_4[P_3]; } : { [P_4 in K]: T_4; } : never : never) => void; }[keyof U] | ((x: U) => void) extends (x: infer I) => void ? { [K_1 in keyof I]: I[K_1]; } : never : U : never)[DeepKeyType];
52
304
  protected innerDelete<StateType, DeepKeyType extends keyof Flatten<StateType>, ValueType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType): ValueType;
53
305
  push<StateType extends object>(): <DeepKeyType extends keyof Flatten<StateType>, ArrayType extends Flatten<StateType>[DeepKeyType] & Array<any> = Flatten<StateType>[DeepKeyType] & Array<any>>(key: DeepKeyType, ...elements: ArrayType) => void;
54
306
  protected innerPush<StateType, DeepKeyType extends keyof Flatten<StateType>, ArrayType extends Flatten<StateType>[DeepKeyType] & Array<any> = Flatten<StateType>[DeepKeyType] & Array<any>>(stateForTypings: StateType, deepKey: DeepKeyType, ...elements: ArrayType): void;
55
- splice<StateType extends object>(): <DeepKeyType extends keyof Flatten<StateType>, ArrayType extends Flatten<StateType>[DeepKeyType] & Array<any> = Flatten<StateType>[DeepKeyType] & Array<any>>(key: DeepKeyType, start: number, deleteCount?: number) => Flatten<StateType, never>[DeepKeyType][];
307
+ splice<StateType extends object>(): <DeepKeyType extends keyof Flatten<StateType>, ArrayType extends Flatten<StateType>[DeepKeyType] & Array<any> = Flatten<StateType>[DeepKeyType] & Array<any>>(key: DeepKeyType, start: number, deleteCount?: number) => (((StateType extends readonly any[] ? Exclude<keyof StateType, keyof any[]> extends never ? {
308
+ [k: `${number}`]: StateType[number];
309
+ } : Omit<StateType, keyof any[]> : StateType) extends infer T ? T extends (StateType extends readonly any[] ? Exclude<keyof StateType, keyof any[]> extends never ? {
310
+ [k: `${number}`]: StateType[number];
311
+ } : Omit<StateType, keyof any[]> : StateType) ? T extends never ? T : { [P in keyof T as (<T_1>() => T_1 extends { [Q in P]: T[P]; } ? 1 : 2) extends <T_1>() => T_1 extends { -readonly [Q in P]: T[P]; } ? 1 : 2 ? P : never]: T[P]; } : never : never) extends infer U ? U extends never ? U : U extends object ? { [K in keyof U]-?: (x: (((0 extends 1 & U[K] ? unknown : U[K] extends infer T_1 ? T_1 extends U[K] ? T_1 extends readonly any[] ? Exclude<keyof T_1, keyof any[]> extends never ? {
312
+ [k: `${number}`]: T_1[number];
313
+ } : Omit<T_1, keyof any[]> : T_1 : never : never) extends infer T_2 ? T_2 extends (0 extends 1 & U[K] ? unknown : U[K] extends infer T_3 ? T_3 extends U[K] ? T_3 extends readonly any[] ? Exclude<keyof T_3, keyof any[]> extends never ? {
314
+ [k: `${number}`]: T_3[number];
315
+ } : Omit<T_3, keyof any[]> : T_3 : never : never) ? T_2 extends never ? T_2 : { [P_1 in keyof T_2 as (<T_3>() => T_3 extends { [Q in P_1]: T_2[P_1]; } ? 1 : 2) extends <T_3>() => T_3 extends { -readonly [Q in P_1]: T_2[P_1]; } ? 1 : 2 ? P_1 : never]: T_2[P_1]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_2 in keyof U]-?: (x: (((0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_4 ? T_4 extends U[K_2] ? T_4 extends readonly any[] ? Exclude<keyof T_4, keyof any[]> extends never ? {
316
+ [k: `${number}`]: T_4[number];
317
+ } : Omit<T_4, keyof any[]> : T_4 : never : never) extends infer T_5 ? T_5 extends (0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_6 ? T_6 extends U[K_2] ? T_6 extends readonly any[] ? Exclude<keyof T_6, keyof any[]> extends never ? {
318
+ [k: `${number}`]: T_6[number];
319
+ } : Omit<T_6, keyof any[]> : T_6 : never : never) ? T_5 extends never ? T_5 : { [P_2 in keyof T_5 as (<T_6>() => T_6 extends { [Q in P_2]: T_5[P_2]; } ? 1 : 2) extends <T_6>() => T_6 extends { -readonly [Q in P_2]: T_5[P_2]; } ? 1 : 2 ? P_2 : never]: T_5[P_2]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_3 in keyof U]-?: (x: (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_7 ? T_7 extends U[K_3] ? T_7 extends readonly any[] ? Exclude<keyof T_7, keyof any[]> extends never ? {
320
+ [k: `${number}`]: T_7[number];
321
+ } : Omit<T_7, keyof any[]> : T_7 : never : never) extends infer T_8 ? T_8 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_9 ? T_9 extends U[K_3] ? T_9 extends readonly any[] ? Exclude<keyof T_9, keyof any[]> extends never ? {
322
+ [k: `${number}`]: T_9[number];
323
+ } : Omit<T_9, keyof any[]> : T_9 : never : never) ? T_8 extends never ? T_8 : { [P_3 in keyof T_8 as (<T_9>() => T_9 extends { [Q in P_3]: T_8[P_3]; } ? 1 : 2) extends <T_9>() => T_9 extends { -readonly [Q in P_3]: T_8[P_3]; } ? 1 : 2 ? P_3 : never]: T_8[P_3]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_4 in keyof U]-?: (x: (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_10 ? T_10 extends U[K_4] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
324
+ [k: `${number}`]: T_10[number];
325
+ } : Omit<T_10, keyof any[]> : T_10 : never : never) extends infer T_11 ? T_11 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_12 ? T_12 extends U[K_4] ? T_12 extends readonly any[] ? Exclude<keyof T_12, keyof any[]> extends never ? {
326
+ [k: `${number}`]: T_12[number];
327
+ } : Omit<T_12, keyof any[]> : T_12 : never : never) ? T_11 extends never ? T_11 : { [P_4 in keyof T_11 as (<T_12>() => T_12 extends { [Q in P_4]: T_11[P_4]; } ? 1 : 2) extends <T_12>() => T_12 extends { -readonly [Q in P_4]: T_11[P_4]; } ? 1 : 2 ? P_4 : never]: T_11[P_4]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_13 ? T_13 extends U[K_5] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
328
+ [k: `${number}`]: T_13[number];
329
+ } : Omit<T_13, keyof any[]> : T_13 : never : never) extends infer T_14 ? T_14 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_15 ? T_15 extends U[K_5] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
330
+ [k: `${number}`]: T_15[number];
331
+ } : Omit<T_15, keyof any[]> : T_15 : never : never) ? T_14 extends never ? T_14 : { [P_5 in keyof T_14 as (<T_15>() => T_15 extends { [Q in P_5]: T_14[P_5]; } ? 1 : 2) extends <T_15>() => T_15 extends { -readonly [Q in P_5]: T_14[P_5]; } ? 1 : 2 ? P_5 : never]: T_14[P_5]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_16 ? T_16 extends U[K_6] ? T_16 extends never ? { [P_6 in K_6]: T_16; } : T_16 extends object ? { [P_7 in keyof T_16 as `${Extract<K_6, string | number>}.${Extract<P_7, string | number>}`]: T_16[P_7]; } : { [P_8 in K_6]: T_16; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_7 in keyof I]: I[K_7]; } : never : U : never) extends infer T_16 ? T_16 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_17 ? T_17 extends U[K_5] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
332
+ [k: `${number}`]: T_17[number];
333
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) extends infer T_18 ? T_18 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_19 ? T_19 extends U[K_5] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
334
+ [k: `${number}`]: T_19[number];
335
+ } : Omit<T_19, keyof any[]> : T_19 : never : never) ? T_18 extends never ? T_18 : { [P_9 in keyof T_18 as (<T_19>() => T_19 extends { [Q in P_9]: T_18[P_9]; } ? 1 : 2) extends <T_19>() => T_19 extends { -readonly [Q in P_9]: T_18[P_9]; } ? 1 : 2 ? P_9 : never]: T_18[P_9]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: U[K_6] extends infer T_20 ? T_20 extends U[K_6] ? T_20 extends never ? { [P_10 in K_6]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_6, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_6]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_7 in keyof I]: I[K_7]; } : never : U : never) ? T_16 extends never ? { [P_6 in K_5]: T_16; } : T_16 extends object ? { [P_7 in keyof T_16 as `${Extract<K_5, string | number>}.${Extract<P_7, string | number>}`]: T_16[P_7]; } : { [P_8 in K_5]: T_16; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_6 in keyof I]: I[K_6]; } : never : U : never) extends infer T_13 ? T_13 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_14 ? T_14 extends U[K_4] ? T_14 extends readonly any[] ? Exclude<keyof T_14, keyof any[]> extends never ? {
336
+ [k: `${number}`]: T_14[number];
337
+ } : Omit<T_14, keyof any[]> : T_14 : never : never) extends infer T_15 ? T_15 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_16 ? T_16 extends U[K_4] ? T_16 extends readonly any[] ? Exclude<keyof T_16, keyof any[]> extends never ? {
338
+ [k: `${number}`]: T_16[number];
339
+ } : Omit<T_16, keyof any[]> : T_16 : never : never) ? T_15 extends never ? T_15 : { [P_8 in keyof T_15 as (<T_16>() => T_16 extends { [Q in P_8]: T_15[P_8]; } ? 1 : 2) extends <T_16>() => T_16 extends { -readonly [Q in P_8]: T_15[P_8]; } ? 1 : 2 ? P_8 : never]: T_15[P_8]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_17 ? T_17 extends U[K_5] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
340
+ [k: `${number}`]: T_17[number];
341
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) extends infer T_18 ? T_18 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_19 ? T_19 extends U[K_5] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
342
+ [k: `${number}`]: T_19[number];
343
+ } : Omit<T_19, keyof any[]> : T_19 : never : never) ? T_18 extends never ? T_18 : { [P_9 in keyof T_18 as (<T_19>() => T_19 extends { [Q in P_9]: T_18[P_9]; } ? 1 : 2) extends <T_19>() => T_19 extends { -readonly [Q in P_9]: T_18[P_9]; } ? 1 : 2 ? P_9 : never]: T_18[P_9]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_20 ? T_20 extends U[K_7] ? T_20 extends never ? { [P_10 in K_7]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_7, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_7]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_6 in keyof I]: I[K_6]; } : never : U : never) extends infer T_20 ? T_20 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_21 ? T_21 extends U[K_5] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
344
+ [k: `${number}`]: T_21[number];
345
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_23 ? T_23 extends U[K_5] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
346
+ [k: `${number}`]: T_23[number];
347
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_6 in keyof I]: I[K_6]; } : never : U : never) ? T_20 extends never ? { [P_10 in K_5]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_5, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_5]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_6 in keyof I]: I[K_6]; } : never : U : never) ? T_13 extends never ? { [P_5 in K_4]: T_13; } : T_13 extends object ? { [P_6 in keyof T_13 as `${Extract<K_4, string | number>}.${Extract<P_6, string | number>}`]: T_13[P_6]; } : { [P_7 in K_4]: T_13; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) extends infer T_10 ? T_10 extends (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_11 ? T_11 extends U[K_3] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
348
+ [k: `${number}`]: T_11[number];
349
+ } : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_13 ? T_13 extends U[K_3] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
350
+ [k: `${number}`]: T_13[number];
351
+ } : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_4 in keyof U]-?: (x: (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_14 ? T_14 extends U[K_4] ? T_14 extends readonly any[] ? Exclude<keyof T_14, keyof any[]> extends never ? {
352
+ [k: `${number}`]: T_14[number];
353
+ } : Omit<T_14, keyof any[]> : T_14 : never : never) extends infer T_15 ? T_15 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_16 ? T_16 extends U[K_4] ? T_16 extends readonly any[] ? Exclude<keyof T_16, keyof any[]> extends never ? {
354
+ [k: `${number}`]: T_16[number];
355
+ } : Omit<T_16, keyof any[]> : T_16 : never : never) ? T_15 extends never ? T_15 : { [P_8 in keyof T_15 as (<T_16>() => T_16 extends { [Q in P_8]: T_15[P_8]; } ? 1 : 2) extends <T_16>() => T_16 extends { -readonly [Q in P_8]: T_15[P_8]; } ? 1 : 2 ? P_8 : never]: T_15[P_8]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_17 ? T_17 extends U[K_6] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
356
+ [k: `${number}`]: T_17[number];
357
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) extends infer T_18 ? T_18 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_19 ? T_19 extends U[K_6] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
358
+ [k: `${number}`]: T_19[number];
359
+ } : Omit<T_19, keyof any[]> : T_19 : never : never) ? T_18 extends never ? T_18 : { [P_9 in keyof T_18 as (<T_19>() => T_19 extends { [Q in P_9]: T_18[P_9]; } ? 1 : 2) extends <T_19>() => T_19 extends { -readonly [Q in P_9]: T_18[P_9]; } ? 1 : 2 ? P_9 : never]: T_18[P_9]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_20 ? T_20 extends U[K_7] ? T_20 extends never ? { [P_10 in K_7]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_7, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_7]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) extends infer T_20 ? T_20 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
360
+ [k: `${number}`]: T_21[number];
361
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
362
+ [k: `${number}`]: T_23[number];
363
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) ? T_20 extends never ? { [P_10 in K_6]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_6, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_6]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) extends infer T_17 ? T_17 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_18 ? T_18 extends U[K_4] ? T_18 extends readonly any[] ? Exclude<keyof T_18, keyof any[]> extends never ? {
364
+ [k: `${number}`]: T_18[number];
365
+ } : Omit<T_18, keyof any[]> : T_18 : never : never) extends infer T_19 ? T_19 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_20 ? T_20 extends U[K_4] ? T_20 extends readonly any[] ? Exclude<keyof T_20, keyof any[]> extends never ? {
366
+ [k: `${number}`]: T_20[number];
367
+ } : Omit<T_20, keyof any[]> : T_20 : never : never) ? T_19 extends never ? T_19 : { [P_12 in keyof T_19 as (<T_20>() => T_20 extends { [Q in P_12]: T_19[P_12]; } ? 1 : 2) extends <T_20>() => T_20 extends { -readonly [Q in P_12]: T_19[P_12]; } ? 1 : 2 ? P_12 : never]: T_19[P_12]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
368
+ [k: `${number}`]: T_21[number];
369
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
370
+ [k: `${number}`]: T_23[number];
371
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) extends infer T_24 ? T_24 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
372
+ [k: `${number}`]: T_25[number];
373
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
374
+ [k: `${number}`]: T_27[number];
375
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) ? T_24 extends never ? { [P_14 in K_6]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_6, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_6]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) ? T_17 extends never ? { [P_9 in K_4]: T_17; } : T_17 extends object ? { [P_10 in keyof T_17 as `${Extract<K_4, string | number>}.${Extract<P_10, string | number>}`]: T_17[P_10]; } : { [P_11 in K_4]: T_17; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_5 in keyof I]: I[K_5]; } : never : U : never) ? T_10 extends never ? { [P_4 in K_3]: T_10; } : T_10 extends object ? { [P_5 in keyof T_10 as `${Extract<K_3, string | number>}.${Extract<P_5, string | number>}`]: T_10[P_5]; } : { [P_6 in K_3]: T_10; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_7 ? T_7 extends (((0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_8 ? T_8 extends U[K_2] ? T_8 extends readonly any[] ? Exclude<keyof T_8, keyof any[]> extends never ? {
376
+ [k: `${number}`]: T_8[number];
377
+ } : Omit<T_8, keyof any[]> : T_8 : never : never) extends infer T_9 ? T_9 extends (0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_10 ? T_10 extends U[K_2] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
378
+ [k: `${number}`]: T_10[number];
379
+ } : Omit<T_10, keyof any[]> : T_10 : never : never) ? T_9 extends never ? T_9 : { [P_6 in keyof T_9 as (<T_10>() => T_10 extends { [Q in P_6]: T_9[P_6]; } ? 1 : 2) extends <T_10>() => T_10 extends { -readonly [Q in P_6]: T_9[P_6]; } ? 1 : 2 ? P_6 : never]: T_9[P_6]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_3 in keyof U]-?: (x: (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_11 ? T_11 extends U[K_3] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
380
+ [k: `${number}`]: T_11[number];
381
+ } : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_13 ? T_13 extends U[K_3] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
382
+ [k: `${number}`]: T_13[number];
383
+ } : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_14 ? T_14 extends U[K_5] ? T_14 extends readonly any[] ? Exclude<keyof T_14, keyof any[]> extends never ? {
384
+ [k: `${number}`]: T_14[number];
385
+ } : Omit<T_14, keyof any[]> : T_14 : never : never) extends infer T_15 ? T_15 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_16 ? T_16 extends U[K_5] ? T_16 extends readonly any[] ? Exclude<keyof T_16, keyof any[]> extends never ? {
386
+ [k: `${number}`]: T_16[number];
387
+ } : Omit<T_16, keyof any[]> : T_16 : never : never) ? T_15 extends never ? T_15 : { [P_8 in keyof T_15 as (<T_16>() => T_16 extends { [Q in P_8]: T_15[P_8]; } ? 1 : 2) extends <T_16>() => T_16 extends { -readonly [Q in P_8]: T_15[P_8]; } ? 1 : 2 ? P_8 : never]: T_15[P_8]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_17 ? T_17 extends U[K_6] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
388
+ [k: `${number}`]: T_17[number];
389
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) extends infer T_18 ? T_18 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_19 ? T_19 extends U[K_6] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
390
+ [k: `${number}`]: T_19[number];
391
+ } : Omit<T_19, keyof any[]> : T_19 : never : never) ? T_18 extends never ? T_18 : { [P_9 in keyof T_18 as (<T_19>() => T_19 extends { [Q in P_9]: T_18[P_9]; } ? 1 : 2) extends <T_19>() => T_19 extends { -readonly [Q in P_9]: T_18[P_9]; } ? 1 : 2 ? P_9 : never]: T_18[P_9]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_20 ? T_20 extends U[K_7] ? T_20 extends never ? { [P_10 in K_7]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_7, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_7]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_20 ? T_20 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
392
+ [k: `${number}`]: T_21[number];
393
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
394
+ [k: `${number}`]: T_23[number];
395
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_20 extends never ? { [P_10 in K_6]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_6, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_6]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_17 ? T_17 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_18 ? T_18 extends U[K_5] ? T_18 extends readonly any[] ? Exclude<keyof T_18, keyof any[]> extends never ? {
396
+ [k: `${number}`]: T_18[number];
397
+ } : Omit<T_18, keyof any[]> : T_18 : never : never) extends infer T_19 ? T_19 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_20 ? T_20 extends U[K_5] ? T_20 extends readonly any[] ? Exclude<keyof T_20, keyof any[]> extends never ? {
398
+ [k: `${number}`]: T_20[number];
399
+ } : Omit<T_20, keyof any[]> : T_20 : never : never) ? T_19 extends never ? T_19 : { [P_12 in keyof T_19 as (<T_20>() => T_20 extends { [Q in P_12]: T_19[P_12]; } ? 1 : 2) extends <T_20>() => T_20 extends { -readonly [Q in P_12]: T_19[P_12]; } ? 1 : 2 ? P_12 : never]: T_19[P_12]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
400
+ [k: `${number}`]: T_21[number];
401
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
402
+ [k: `${number}`]: T_23[number];
403
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_24 ? T_24 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
404
+ [k: `${number}`]: T_25[number];
405
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
406
+ [k: `${number}`]: T_27[number];
407
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_24 extends never ? { [P_14 in K_6]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_6, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_6]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_17 extends never ? { [P_9 in K_5]: T_17; } : T_17 extends object ? { [P_10 in keyof T_17 as `${Extract<K_5, string | number>}.${Extract<P_10, string | number>}`]: T_17[P_10]; } : { [P_11 in K_5]: T_17; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_14 ? T_14 extends (((0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_15 ? T_15 extends U[K_3] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
408
+ [k: `${number}`]: T_15[number];
409
+ } : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_3] ? unknown : U[K_3] extends infer T_17 ? T_17 extends U[K_3] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
410
+ [k: `${number}`]: T_17[number];
411
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_18 ? T_18 extends U[K_5] ? T_18 extends readonly any[] ? Exclude<keyof T_18, keyof any[]> extends never ? {
412
+ [k: `${number}`]: T_18[number];
413
+ } : Omit<T_18, keyof any[]> : T_18 : never : never) extends infer T_19 ? T_19 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_20 ? T_20 extends U[K_5] ? T_20 extends readonly any[] ? Exclude<keyof T_20, keyof any[]> extends never ? {
414
+ [k: `${number}`]: T_20[number];
415
+ } : Omit<T_20, keyof any[]> : T_20 : never : never) ? T_19 extends never ? T_19 : { [P_12 in keyof T_19 as (<T_20>() => T_20 extends { [Q in P_12]: T_19[P_12]; } ? 1 : 2) extends <T_20>() => T_20 extends { -readonly [Q in P_12]: T_19[P_12]; } ? 1 : 2 ? P_12 : never]: T_19[P_12]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
416
+ [k: `${number}`]: T_21[number];
417
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
418
+ [k: `${number}`]: T_23[number];
419
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_24 ? T_24 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
420
+ [k: `${number}`]: T_25[number];
421
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
422
+ [k: `${number}`]: T_27[number];
423
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_24 extends never ? { [P_14 in K_6]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_6, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_6]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_21 ? T_21 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_22 ? T_22 extends U[K_5] ? T_22 extends readonly any[] ? Exclude<keyof T_22, keyof any[]> extends never ? {
424
+ [k: `${number}`]: T_22[number];
425
+ } : Omit<T_22, keyof any[]> : T_22 : never : never) extends infer T_23 ? T_23 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_24 ? T_24 extends U[K_5] ? T_24 extends readonly any[] ? Exclude<keyof T_24, keyof any[]> extends never ? {
426
+ [k: `${number}`]: T_24[number];
427
+ } : Omit<T_24, keyof any[]> : T_24 : never : never) ? T_23 extends never ? T_23 : { [P_16 in keyof T_23 as (<T_24>() => T_24 extends { [Q in P_16]: T_23[P_16]; } ? 1 : 2) extends <T_24>() => T_24 extends { -readonly [Q in P_16]: T_23[P_16]; } ? 1 : 2 ? P_16 : never]: T_23[P_16]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
428
+ [k: `${number}`]: T_25[number];
429
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
430
+ [k: `${number}`]: T_27[number];
431
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) extends infer T_28 ? T_28 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_29 ? T_29 extends U[K_6] ? T_29 extends readonly any[] ? Exclude<keyof T_29, keyof any[]> extends never ? {
432
+ [k: `${number}`]: T_29[number];
433
+ } : Omit<T_29, keyof any[]> : T_29 : never : never) extends infer T_30 ? T_30 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_31 ? T_31 extends U[K_6] ? T_31 extends readonly any[] ? Exclude<keyof T_31, keyof any[]> extends never ? {
434
+ [k: `${number}`]: T_31[number];
435
+ } : Omit<T_31, keyof any[]> : T_31 : never : never) ? T_30 extends never ? T_30 : { [P_21 in keyof T_30 as (<T_31>() => T_31 extends { [Q in P_21]: T_30[P_21]; } ? 1 : 2) extends <T_31>() => T_31 extends { -readonly [Q in P_21]: T_30[P_21]; } ? 1 : 2 ? P_21 : never]: T_30[P_21]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_32 ? T_32 extends U[K_7] ? T_32 extends never ? { [P_22 in K_7]: T_32; } : T_32 extends object ? { [P_23 in keyof T_32 as `${Extract<K_7, string | number>}.${Extract<P_23, string | number>}`]: T_32[P_23]; } : { [P_24 in K_7]: T_32; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_28 extends never ? { [P_18 in K_6]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_6, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_6]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_21 extends never ? { [P_13 in K_5]: T_21; } : T_21 extends object ? { [P_14 in keyof T_21 as `${Extract<K_5, string | number>}.${Extract<P_14, string | number>}`]: T_21[P_14]; } : { [P_15 in K_5]: T_21; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_14 extends never ? { [P_8 in K_3]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_3, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_3]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_4 in keyof I]: I[K_4]; } : never : U : never) ? T_7 extends never ? { [P_3 in K_2]: T_7; } : T_7 extends object ? { [P_4 in keyof T_7 as `${Extract<K_2, string | number>}.${Extract<P_4, string | number>}`]: T_7[P_4]; } : { [P_5 in K_2]: T_7; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_4 ? T_4 extends (((0 extends 1 & U[K] ? unknown : U[K] extends infer T_5 ? T_5 extends U[K] ? T_5 extends readonly any[] ? Exclude<keyof T_5, keyof any[]> extends never ? {
436
+ [k: `${number}`]: T_5[number];
437
+ } : Omit<T_5, keyof any[]> : T_5 : never : never) extends infer T_6 ? T_6 extends (0 extends 1 & U[K] ? unknown : U[K] extends infer T_7 ? T_7 extends U[K] ? T_7 extends readonly any[] ? Exclude<keyof T_7, keyof any[]> extends never ? {
438
+ [k: `${number}`]: T_7[number];
439
+ } : Omit<T_7, keyof any[]> : T_7 : never : never) ? T_6 extends never ? T_6 : { [P_5 in keyof T_6 as (<T_7>() => T_7 extends { [Q in P_5]: T_6[P_5]; } ? 1 : 2) extends <T_7>() => T_7 extends { -readonly [Q in P_5]: T_6[P_5]; } ? 1 : 2 ? P_5 : never]: T_6[P_5]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_2 in keyof U]-?: (x: (((0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_8 ? T_8 extends U[K_2] ? T_8 extends readonly any[] ? Exclude<keyof T_8, keyof any[]> extends never ? {
440
+ [k: `${number}`]: T_8[number];
441
+ } : Omit<T_8, keyof any[]> : T_8 : never : never) extends infer T_9 ? T_9 extends (0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_10 ? T_10 extends U[K_2] ? T_10 extends readonly any[] ? Exclude<keyof T_10, keyof any[]> extends never ? {
442
+ [k: `${number}`]: T_10[number];
443
+ } : Omit<T_10, keyof any[]> : T_10 : never : never) ? T_9 extends never ? T_9 : { [P_6 in keyof T_9 as (<T_10>() => T_10 extends { [Q in P_6]: T_9[P_6]; } ? 1 : 2) extends <T_10>() => T_10 extends { -readonly [Q in P_6]: T_9[P_6]; } ? 1 : 2 ? P_6 : never]: T_9[P_6]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_4 in keyof U]-?: (x: (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_11 ? T_11 extends U[K_4] ? T_11 extends readonly any[] ? Exclude<keyof T_11, keyof any[]> extends never ? {
444
+ [k: `${number}`]: T_11[number];
445
+ } : Omit<T_11, keyof any[]> : T_11 : never : never) extends infer T_12 ? T_12 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_13 ? T_13 extends U[K_4] ? T_13 extends readonly any[] ? Exclude<keyof T_13, keyof any[]> extends never ? {
446
+ [k: `${number}`]: T_13[number];
447
+ } : Omit<T_13, keyof any[]> : T_13 : never : never) ? T_12 extends never ? T_12 : { [P_7 in keyof T_12 as (<T_13>() => T_13 extends { [Q in P_7]: T_12[P_7]; } ? 1 : 2) extends <T_13>() => T_13 extends { -readonly [Q in P_7]: T_12[P_7]; } ? 1 : 2 ? P_7 : never]: T_12[P_7]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_14 ? T_14 extends U[K_5] ? T_14 extends readonly any[] ? Exclude<keyof T_14, keyof any[]> extends never ? {
448
+ [k: `${number}`]: T_14[number];
449
+ } : Omit<T_14, keyof any[]> : T_14 : never : never) extends infer T_15 ? T_15 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_16 ? T_16 extends U[K_5] ? T_16 extends readonly any[] ? Exclude<keyof T_16, keyof any[]> extends never ? {
450
+ [k: `${number}`]: T_16[number];
451
+ } : Omit<T_16, keyof any[]> : T_16 : never : never) ? T_15 extends never ? T_15 : { [P_8 in keyof T_15 as (<T_16>() => T_16 extends { [Q in P_8]: T_15[P_8]; } ? 1 : 2) extends <T_16>() => T_16 extends { -readonly [Q in P_8]: T_15[P_8]; } ? 1 : 2 ? P_8 : never]: T_15[P_8]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_17 ? T_17 extends U[K_6] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
452
+ [k: `${number}`]: T_17[number];
453
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) extends infer T_18 ? T_18 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_19 ? T_19 extends U[K_6] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
454
+ [k: `${number}`]: T_19[number];
455
+ } : Omit<T_19, keyof any[]> : T_19 : never : never) ? T_18 extends never ? T_18 : { [P_9 in keyof T_18 as (<T_19>() => T_19 extends { [Q in P_9]: T_18[P_9]; } ? 1 : 2) extends <T_19>() => T_19 extends { -readonly [Q in P_9]: T_18[P_9]; } ? 1 : 2 ? P_9 : never]: T_18[P_9]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_20 ? T_20 extends U[K_7] ? T_20 extends never ? { [P_10 in K_7]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_7, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_7]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_20 ? T_20 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
456
+ [k: `${number}`]: T_21[number];
457
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
458
+ [k: `${number}`]: T_23[number];
459
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_20 extends never ? { [P_10 in K_6]: T_20; } : T_20 extends object ? { [P_11 in keyof T_20 as `${Extract<K_6, string | number>}.${Extract<P_11, string | number>}`]: T_20[P_11]; } : { [P_12 in K_6]: T_20; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_17 ? T_17 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_18 ? T_18 extends U[K_5] ? T_18 extends readonly any[] ? Exclude<keyof T_18, keyof any[]> extends never ? {
460
+ [k: `${number}`]: T_18[number];
461
+ } : Omit<T_18, keyof any[]> : T_18 : never : never) extends infer T_19 ? T_19 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_20 ? T_20 extends U[K_5] ? T_20 extends readonly any[] ? Exclude<keyof T_20, keyof any[]> extends never ? {
462
+ [k: `${number}`]: T_20[number];
463
+ } : Omit<T_20, keyof any[]> : T_20 : never : never) ? T_19 extends never ? T_19 : { [P_12 in keyof T_19 as (<T_20>() => T_20 extends { [Q in P_12]: T_19[P_12]; } ? 1 : 2) extends <T_20>() => T_20 extends { -readonly [Q in P_12]: T_19[P_12]; } ? 1 : 2 ? P_12 : never]: T_19[P_12]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
464
+ [k: `${number}`]: T_21[number];
465
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
466
+ [k: `${number}`]: T_23[number];
467
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_24 ? T_24 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
468
+ [k: `${number}`]: T_25[number];
469
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
470
+ [k: `${number}`]: T_27[number];
471
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_24 extends never ? { [P_14 in K_6]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_6, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_6]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_17 extends never ? { [P_9 in K_5]: T_17; } : T_17 extends object ? { [P_10 in keyof T_17 as `${Extract<K_5, string | number>}.${Extract<P_10, string | number>}`]: T_17[P_10]; } : { [P_11 in K_5]: T_17; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_14 ? T_14 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_15 ? T_15 extends U[K_4] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
472
+ [k: `${number}`]: T_15[number];
473
+ } : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_17 ? T_17 extends U[K_4] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
474
+ [k: `${number}`]: T_17[number];
475
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_18 ? T_18 extends U[K_5] ? T_18 extends readonly any[] ? Exclude<keyof T_18, keyof any[]> extends never ? {
476
+ [k: `${number}`]: T_18[number];
477
+ } : Omit<T_18, keyof any[]> : T_18 : never : never) extends infer T_19 ? T_19 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_20 ? T_20 extends U[K_5] ? T_20 extends readonly any[] ? Exclude<keyof T_20, keyof any[]> extends never ? {
478
+ [k: `${number}`]: T_20[number];
479
+ } : Omit<T_20, keyof any[]> : T_20 : never : never) ? T_19 extends never ? T_19 : { [P_12 in keyof T_19 as (<T_20>() => T_20 extends { [Q in P_12]: T_19[P_12]; } ? 1 : 2) extends <T_20>() => T_20 extends { -readonly [Q in P_12]: T_19[P_12]; } ? 1 : 2 ? P_12 : never]: T_19[P_12]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
480
+ [k: `${number}`]: T_21[number];
481
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
482
+ [k: `${number}`]: T_23[number];
483
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_24 ? T_24 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
484
+ [k: `${number}`]: T_25[number];
485
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
486
+ [k: `${number}`]: T_27[number];
487
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_24 extends never ? { [P_14 in K_6]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_6, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_6]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_21 ? T_21 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_22 ? T_22 extends U[K_5] ? T_22 extends readonly any[] ? Exclude<keyof T_22, keyof any[]> extends never ? {
488
+ [k: `${number}`]: T_22[number];
489
+ } : Omit<T_22, keyof any[]> : T_22 : never : never) extends infer T_23 ? T_23 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_24 ? T_24 extends U[K_5] ? T_24 extends readonly any[] ? Exclude<keyof T_24, keyof any[]> extends never ? {
490
+ [k: `${number}`]: T_24[number];
491
+ } : Omit<T_24, keyof any[]> : T_24 : never : never) ? T_23 extends never ? T_23 : { [P_16 in keyof T_23 as (<T_24>() => T_24 extends { [Q in P_16]: T_23[P_16]; } ? 1 : 2) extends <T_24>() => T_24 extends { -readonly [Q in P_16]: T_23[P_16]; } ? 1 : 2 ? P_16 : never]: T_23[P_16]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
492
+ [k: `${number}`]: T_25[number];
493
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
494
+ [k: `${number}`]: T_27[number];
495
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_28 ? T_28 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_29 ? T_29 extends U[K_6] ? T_29 extends readonly any[] ? Exclude<keyof T_29, keyof any[]> extends never ? {
496
+ [k: `${number}`]: T_29[number];
497
+ } : Omit<T_29, keyof any[]> : T_29 : never : never) extends infer T_30 ? T_30 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_31 ? T_31 extends U[K_6] ? T_31 extends readonly any[] ? Exclude<keyof T_31, keyof any[]> extends never ? {
498
+ [k: `${number}`]: T_31[number];
499
+ } : Omit<T_31, keyof any[]> : T_31 : never : never) ? T_30 extends never ? T_30 : { [P_21 in keyof T_30 as (<T_31>() => T_31 extends { [Q in P_21]: T_30[P_21]; } ? 1 : 2) extends <T_31>() => T_31 extends { -readonly [Q in P_21]: T_30[P_21]; } ? 1 : 2 ? P_21 : never]: T_30[P_21]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_32 ? T_32 extends U[K_7] ? T_32 extends never ? { [P_22 in K_7]: T_32; } : T_32 extends object ? { [P_23 in keyof T_32 as `${Extract<K_7, string | number>}.${Extract<P_23, string | number>}`]: T_32[P_23]; } : { [P_24 in K_7]: T_32; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_28 extends never ? { [P_18 in K_6]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_6, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_6]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_21 extends never ? { [P_13 in K_5]: T_21; } : T_21 extends object ? { [P_14 in keyof T_21 as `${Extract<K_5, string | number>}.${Extract<P_14, string | number>}`]: T_21[P_14]; } : { [P_15 in K_5]: T_21; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_14 extends never ? { [P_8 in K_4]: T_14; } : T_14 extends object ? { [P_9 in keyof T_14 as `${Extract<K_4, string | number>}.${Extract<P_9, string | number>}`]: T_14[P_9]; } : { [P_10 in K_4]: T_14; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_11 ? T_11 extends (((0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_12 ? T_12 extends U[K_2] ? T_12 extends readonly any[] ? Exclude<keyof T_12, keyof any[]> extends never ? {
500
+ [k: `${number}`]: T_12[number];
501
+ } : Omit<T_12, keyof any[]> : T_12 : never : never) extends infer T_13 ? T_13 extends (0 extends 1 & U[K_2] ? unknown : U[K_2] extends infer T_14 ? T_14 extends U[K_2] ? T_14 extends readonly any[] ? Exclude<keyof T_14, keyof any[]> extends never ? {
502
+ [k: `${number}`]: T_14[number];
503
+ } : Omit<T_14, keyof any[]> : T_14 : never : never) ? T_13 extends never ? T_13 : { [P_10 in keyof T_13 as (<T_14>() => T_14 extends { [Q in P_10]: T_13[P_10]; } ? 1 : 2) extends <T_14>() => T_14 extends { -readonly [Q in P_10]: T_13[P_10]; } ? 1 : 2 ? P_10 : never]: T_13[P_10]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_4 in keyof U]-?: (x: (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_15 ? T_15 extends U[K_4] ? T_15 extends readonly any[] ? Exclude<keyof T_15, keyof any[]> extends never ? {
504
+ [k: `${number}`]: T_15[number];
505
+ } : Omit<T_15, keyof any[]> : T_15 : never : never) extends infer T_16 ? T_16 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_17 ? T_17 extends U[K_4] ? T_17 extends readonly any[] ? Exclude<keyof T_17, keyof any[]> extends never ? {
506
+ [k: `${number}`]: T_17[number];
507
+ } : Omit<T_17, keyof any[]> : T_17 : never : never) ? T_16 extends never ? T_16 : { [P_11 in keyof T_16 as (<T_17>() => T_17 extends { [Q in P_11]: T_16[P_11]; } ? 1 : 2) extends <T_17>() => T_17 extends { -readonly [Q in P_11]: T_16[P_11]; } ? 1 : 2 ? P_11 : never]: T_16[P_11]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_18 ? T_18 extends U[K_5] ? T_18 extends readonly any[] ? Exclude<keyof T_18, keyof any[]> extends never ? {
508
+ [k: `${number}`]: T_18[number];
509
+ } : Omit<T_18, keyof any[]> : T_18 : never : never) extends infer T_19 ? T_19 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_20 ? T_20 extends U[K_5] ? T_20 extends readonly any[] ? Exclude<keyof T_20, keyof any[]> extends never ? {
510
+ [k: `${number}`]: T_20[number];
511
+ } : Omit<T_20, keyof any[]> : T_20 : never : never) ? T_19 extends never ? T_19 : { [P_12 in keyof T_19 as (<T_20>() => T_20 extends { [Q in P_12]: T_19[P_12]; } ? 1 : 2) extends <T_20>() => T_20 extends { -readonly [Q in P_12]: T_19[P_12]; } ? 1 : 2 ? P_12 : never]: T_19[P_12]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_21 ? T_21 extends U[K_6] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
512
+ [k: `${number}`]: T_21[number];
513
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) extends infer T_22 ? T_22 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_23 ? T_23 extends U[K_6] ? T_23 extends readonly any[] ? Exclude<keyof T_23, keyof any[]> extends never ? {
514
+ [k: `${number}`]: T_23[number];
515
+ } : Omit<T_23, keyof any[]> : T_23 : never : never) ? T_22 extends never ? T_22 : { [P_13 in keyof T_22 as (<T_23>() => T_23 extends { [Q in P_13]: T_22[P_13]; } ? 1 : 2) extends <T_23>() => T_23 extends { -readonly [Q in P_13]: T_22[P_13]; } ? 1 : 2 ? P_13 : never]: T_22[P_13]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_24 ? T_24 extends U[K_7] ? T_24 extends never ? { [P_14 in K_7]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_7, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_7]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_24 ? T_24 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
516
+ [k: `${number}`]: T_25[number];
517
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
518
+ [k: `${number}`]: T_27[number];
519
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_24 extends never ? { [P_14 in K_6]: T_24; } : T_24 extends object ? { [P_15 in keyof T_24 as `${Extract<K_6, string | number>}.${Extract<P_15, string | number>}`]: T_24[P_15]; } : { [P_16 in K_6]: T_24; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_21 ? T_21 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_22 ? T_22 extends U[K_5] ? T_22 extends readonly any[] ? Exclude<keyof T_22, keyof any[]> extends never ? {
520
+ [k: `${number}`]: T_22[number];
521
+ } : Omit<T_22, keyof any[]> : T_22 : never : never) extends infer T_23 ? T_23 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_24 ? T_24 extends U[K_5] ? T_24 extends readonly any[] ? Exclude<keyof T_24, keyof any[]> extends never ? {
522
+ [k: `${number}`]: T_24[number];
523
+ } : Omit<T_24, keyof any[]> : T_24 : never : never) ? T_23 extends never ? T_23 : { [P_16 in keyof T_23 as (<T_24>() => T_24 extends { [Q in P_16]: T_23[P_16]; } ? 1 : 2) extends <T_24>() => T_24 extends { -readonly [Q in P_16]: T_23[P_16]; } ? 1 : 2 ? P_16 : never]: T_23[P_16]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
524
+ [k: `${number}`]: T_25[number];
525
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
526
+ [k: `${number}`]: T_27[number];
527
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_28 ? T_28 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_29 ? T_29 extends U[K_6] ? T_29 extends readonly any[] ? Exclude<keyof T_29, keyof any[]> extends never ? {
528
+ [k: `${number}`]: T_29[number];
529
+ } : Omit<T_29, keyof any[]> : T_29 : never : never) extends infer T_30 ? T_30 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_31 ? T_31 extends U[K_6] ? T_31 extends readonly any[] ? Exclude<keyof T_31, keyof any[]> extends never ? {
530
+ [k: `${number}`]: T_31[number];
531
+ } : Omit<T_31, keyof any[]> : T_31 : never : never) ? T_30 extends never ? T_30 : { [P_21 in keyof T_30 as (<T_31>() => T_31 extends { [Q in P_21]: T_30[P_21]; } ? 1 : 2) extends <T_31>() => T_31 extends { -readonly [Q in P_21]: T_30[P_21]; } ? 1 : 2 ? P_21 : never]: T_30[P_21]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_32 ? T_32 extends U[K_7] ? T_32 extends never ? { [P_22 in K_7]: T_32; } : T_32 extends object ? { [P_23 in keyof T_32 as `${Extract<K_7, string | number>}.${Extract<P_23, string | number>}`]: T_32[P_23]; } : { [P_24 in K_7]: T_32; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_28 extends never ? { [P_18 in K_6]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_6, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_6]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_21 extends never ? { [P_13 in K_5]: T_21; } : T_21 extends object ? { [P_14 in keyof T_21 as `${Extract<K_5, string | number>}.${Extract<P_14, string | number>}`]: T_21[P_14]; } : { [P_15 in K_5]: T_21; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_18 ? T_18 extends (((0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_19 ? T_19 extends U[K_4] ? T_19 extends readonly any[] ? Exclude<keyof T_19, keyof any[]> extends never ? {
532
+ [k: `${number}`]: T_19[number];
533
+ } : Omit<T_19, keyof any[]> : T_19 : never : never) extends infer T_20 ? T_20 extends (0 extends 1 & U[K_4] ? unknown : U[K_4] extends infer T_21 ? T_21 extends U[K_4] ? T_21 extends readonly any[] ? Exclude<keyof T_21, keyof any[]> extends never ? {
534
+ [k: `${number}`]: T_21[number];
535
+ } : Omit<T_21, keyof any[]> : T_21 : never : never) ? T_20 extends never ? T_20 : { [P_15 in keyof T_20 as (<T_21>() => T_21 extends { [Q in P_15]: T_20[P_15]; } ? 1 : 2) extends <T_21>() => T_21 extends { -readonly [Q in P_15]: T_20[P_15]; } ? 1 : 2 ? P_15 : never]: T_20[P_15]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_5 in keyof U]-?: (x: (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_22 ? T_22 extends U[K_5] ? T_22 extends readonly any[] ? Exclude<keyof T_22, keyof any[]> extends never ? {
536
+ [k: `${number}`]: T_22[number];
537
+ } : Omit<T_22, keyof any[]> : T_22 : never : never) extends infer T_23 ? T_23 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_24 ? T_24 extends U[K_5] ? T_24 extends readonly any[] ? Exclude<keyof T_24, keyof any[]> extends never ? {
538
+ [k: `${number}`]: T_24[number];
539
+ } : Omit<T_24, keyof any[]> : T_24 : never : never) ? T_23 extends never ? T_23 : { [P_16 in keyof T_23 as (<T_24>() => T_24 extends { [Q in P_16]: T_23[P_16]; } ? 1 : 2) extends <T_24>() => T_24 extends { -readonly [Q in P_16]: T_23[P_16]; } ? 1 : 2 ? P_16 : never]: T_23[P_16]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_25 ? T_25 extends U[K_6] ? T_25 extends readonly any[] ? Exclude<keyof T_25, keyof any[]> extends never ? {
540
+ [k: `${number}`]: T_25[number];
541
+ } : Omit<T_25, keyof any[]> : T_25 : never : never) extends infer T_26 ? T_26 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_27 ? T_27 extends U[K_6] ? T_27 extends readonly any[] ? Exclude<keyof T_27, keyof any[]> extends never ? {
542
+ [k: `${number}`]: T_27[number];
543
+ } : Omit<T_27, keyof any[]> : T_27 : never : never) ? T_26 extends never ? T_26 : { [P_17 in keyof T_26 as (<T_27>() => T_27 extends { [Q in P_17]: T_26[P_17]; } ? 1 : 2) extends <T_27>() => T_27 extends { -readonly [Q in P_17]: T_26[P_17]; } ? 1 : 2 ? P_17 : never]: T_26[P_17]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_28 ? T_28 extends U[K_7] ? T_28 extends never ? { [P_18 in K_7]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_7, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_7]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_28 ? T_28 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_29 ? T_29 extends U[K_6] ? T_29 extends readonly any[] ? Exclude<keyof T_29, keyof any[]> extends never ? {
544
+ [k: `${number}`]: T_29[number];
545
+ } : Omit<T_29, keyof any[]> : T_29 : never : never) extends infer T_30 ? T_30 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_31 ? T_31 extends U[K_6] ? T_31 extends readonly any[] ? Exclude<keyof T_31, keyof any[]> extends never ? {
546
+ [k: `${number}`]: T_31[number];
547
+ } : Omit<T_31, keyof any[]> : T_31 : never : never) ? T_30 extends never ? T_30 : { [P_21 in keyof T_30 as (<T_31>() => T_31 extends { [Q in P_21]: T_30[P_21]; } ? 1 : 2) extends <T_31>() => T_31 extends { -readonly [Q in P_21]: T_30[P_21]; } ? 1 : 2 ? P_21 : never]: T_30[P_21]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_32 ? T_32 extends U[K_7] ? T_32 extends never ? { [P_22 in K_7]: T_32; } : T_32 extends object ? { [P_23 in keyof T_32 as `${Extract<K_7, string | number>}.${Extract<P_23, string | number>}`]: T_32[P_23]; } : { [P_24 in K_7]: T_32; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_28 extends never ? { [P_18 in K_6]: T_28; } : T_28 extends object ? { [P_19 in keyof T_28 as `${Extract<K_6, string | number>}.${Extract<P_19, string | number>}`]: T_28[P_19]; } : { [P_20 in K_6]: T_28; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_25 ? T_25 extends (((0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_26 ? T_26 extends U[K_5] ? T_26 extends readonly any[] ? Exclude<keyof T_26, keyof any[]> extends never ? {
548
+ [k: `${number}`]: T_26[number];
549
+ } : Omit<T_26, keyof any[]> : T_26 : never : never) extends infer T_27 ? T_27 extends (0 extends 1 & U[K_5] ? unknown : U[K_5] extends infer T_28 ? T_28 extends U[K_5] ? T_28 extends readonly any[] ? Exclude<keyof T_28, keyof any[]> extends never ? {
550
+ [k: `${number}`]: T_28[number];
551
+ } : Omit<T_28, keyof any[]> : T_28 : never : never) ? T_27 extends never ? T_27 : { [P_20 in keyof T_27 as (<T_28>() => T_28 extends { [Q in P_20]: T_27[P_20]; } ? 1 : 2) extends <T_28>() => T_28 extends { -readonly [Q in P_20]: T_27[P_20]; } ? 1 : 2 ? P_20 : never]: T_27[P_20]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_6 in keyof U]-?: (x: (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_29 ? T_29 extends U[K_6] ? T_29 extends readonly any[] ? Exclude<keyof T_29, keyof any[]> extends never ? {
552
+ [k: `${number}`]: T_29[number];
553
+ } : Omit<T_29, keyof any[]> : T_29 : never : never) extends infer T_30 ? T_30 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_31 ? T_31 extends U[K_6] ? T_31 extends readonly any[] ? Exclude<keyof T_31, keyof any[]> extends never ? {
554
+ [k: `${number}`]: T_31[number];
555
+ } : Omit<T_31, keyof any[]> : T_31 : never : never) ? T_30 extends never ? T_30 : { [P_21 in keyof T_30 as (<T_31>() => T_31 extends { [Q in P_21]: T_30[P_21]; } ? 1 : 2) extends <T_31>() => T_31 extends { -readonly [Q in P_21]: T_30[P_21]; } ? 1 : 2 ? P_21 : never]: T_30[P_21]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_32 ? T_32 extends U[K_7] ? T_32 extends never ? { [P_22 in K_7]: T_32; } : T_32 extends object ? { [P_23 in keyof T_32 as `${Extract<K_7, string | number>}.${Extract<P_23, string | number>}`]: T_32[P_23]; } : { [P_24 in K_7]: T_32; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) extends infer T_32 ? T_32 extends (((0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_33 ? T_33 extends U[K_6] ? T_33 extends readonly any[] ? Exclude<keyof T_33, keyof any[]> extends never ? {
556
+ [k: `${number}`]: T_33[number];
557
+ } : Omit<T_33, keyof any[]> : T_33 : never : never) extends infer T_34 ? T_34 extends (0 extends 1 & U[K_6] ? unknown : U[K_6] extends infer T_35 ? T_35 extends U[K_6] ? T_35 extends readonly any[] ? Exclude<keyof T_35, keyof any[]> extends never ? {
558
+ [k: `${number}`]: T_35[number];
559
+ } : Omit<T_35, keyof any[]> : T_35 : never : never) ? T_34 extends never ? T_34 : { [P_25 in keyof T_34 as (<T_35>() => T_35 extends { [Q in P_25]: T_34[P_25]; } ? 1 : 2) extends <T_35>() => T_35 extends { -readonly [Q in P_25]: T_34[P_25]; } ? 1 : 2 ? P_25 : never]: T_34[P_25]; } : never : never) extends infer U ? U extends never ? U : U extends object ? ((x: U) => void) | { [K_7 in keyof U]-?: (x: U[K_7] extends infer T_36 ? T_36 extends U[K_7] ? T_36 extends never ? { [P_26 in K_7]: T_36; } : T_36 extends object ? { [P_27 in keyof T_36 as `${Extract<K_7, string | number>}.${Extract<P_27, string | number>}`]: T_36[P_27]; } : { [P_28 in K_7]: T_36; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_32 extends never ? { [P_22 in K_6]: T_32; } : T_32 extends object ? { [P_23 in keyof T_32 as `${Extract<K_6, string | number>}.${Extract<P_23, string | number>}`]: T_32[P_23]; } : { [P_24 in K_6]: T_32; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_25 extends never ? { [P_17 in K_5]: T_25; } : T_25 extends object ? { [P_18 in keyof T_25 as `${Extract<K_5, string | number>}.${Extract<P_18, string | number>}`]: T_25[P_18]; } : { [P_19 in K_5]: T_25; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_18 extends never ? { [P_12 in K_4]: T_18; } : T_18 extends object ? { [P_13 in keyof T_18 as `${Extract<K_4, string | number>}.${Extract<P_13, string | number>}`]: T_18[P_13]; } : { [P_14 in K_4]: T_18; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_11 extends never ? { [P_7 in K_2]: T_11; } : T_11 extends object ? { [P_8 in keyof T_11 as `${Extract<K_2, string | number>}.${Extract<P_8, string | number>}`]: T_11[P_8]; } : { [P_9 in K_2]: T_11; } : never : never) => void; }[keyof U] extends (x: infer I) => void ? { [K_3 in keyof I]: I[K_3]; } : never : U : never) ? T_4 extends never ? { [P_2 in K]: T_4; } : T_4 extends object ? { [P_3 in keyof T_4 as `${Extract<K, string | number>}.${Extract<P_3, string | number>}`]: T_4[P_3]; } : { [P_4 in K]: T_4; } : never : never) => void; }[keyof U] | ((x: U) => void) extends (x: infer I) => void ? { [K_1 in keyof I]: I[K_1]; } : never : U : never)[DeepKeyType][];
56
560
  protected innerSplice<StateType, DeepKeyType extends keyof Flatten<StateType>, ArrayType extends Flatten<StateType>[DeepKeyType]>(stateForTypings: StateType, deepKey: DeepKeyType, start: number, deleteCount?: number): ArrayType[];
57
561
  }
@@ -1,3 +1,4 @@
1
+ import { DefaultFlattenDepth, Prev } from "./DeepTypeUtils";
1
2
  type Writable<T, O> = T extends O ? T : {
2
3
  [P in keyof T as IfEquals<{
3
4
  [Q in P]: T[P];
@@ -17,8 +18,24 @@ type PrefixKeys<V, K extends PropertyKey, O> = V extends O ? {
17
18
  [P in K]: V;
18
19
  };
19
20
  type ValueOf<T> = T[keyof T];
20
- export type Flatten<T, O = never> = Writable<Cleanup<T>, O> extends infer U ? U extends O ? U : U extends object ? ValueOf<{
21
- [K in keyof U]-?: (x: PrefixKeys<Flatten<U[K], O>, K, O>) => void;
21
+ /**
22
+ * Flattens a nested object type into a flat object with dot-notation keys.
23
+ *
24
+ * @typeParam T - The type to flatten
25
+ * @typeParam O - Types to exclude from flattening (treated as leaf values)
26
+ * @typeParam D - Maximum recursion depth (default: 5)
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * type Nested = { a: { b: { c: number } } };
31
+ * type Flat = Flatten<Nested>;
32
+ * // { a: { b: { c: number } }; "a.b": { c: number }; "a.b.c": number }
33
+ * ```
34
+ */
35
+ export type Flatten<T, O = never, D extends number = DefaultFlattenDepth> = [
36
+ D
37
+ ] extends [never] ? T : Writable<Cleanup<T>, O> extends infer U ? U extends O ? U : U extends object ? ValueOf<{
38
+ [K in keyof U]-?: (x: PrefixKeys<Flatten<U[K], O, Prev[D]>, K, O>) => void;
22
39
  }> | ((x: U) => void) extends (x: infer I) => void ? {
23
40
  [K in keyof I]: I[K];
24
41
  } : never : U : never;
@@ -140,5 +140,5 @@ export type ObjectNestedPathsType<T extends object> = Array<Paths<T>>
140
140
  // keys: ["a", "nest.c", "otherNest.otherNest"]
141
141
  // }
142
142
 
143
- */
143
+ */
144
144
  //# sourceMappingURL=DeepKeyTypings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeepKeyTypings.js","sourceRoot":"","sources":["../../../src/state/data/DeepKeyTypings.ts"],"names":[],"mappings":";AA4BA,iFAAiF;AACjF,2CAA2C;AAC3C,kCAAkC;AAClC,mGAAmG;AACnG,IAAI;AAGJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4DE;AAGF,gGAAgG;AAChG,kCAAkC;AAClC,mGAAmG;AACnG,IAAI;AACJ,mCAAmC;AACnC,qCAAqC;AACrC,yCAAyC;AAEzC,QAAQ;AACR,uFAAuF;AACvF,gBAAgB;AAChB,gDAAgD;AAChD,IAAI;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+DE"}
1
+ {"version":3,"file":"DeepKeyTypings.js","sourceRoot":"","sources":["../../../src/state/data/DeepKeyTypings.ts"],"names":[],"mappings":";AA+CA,iFAAiF;AACjF,2CAA2C;AAC3C,kCAAkC;AAClC,mGAAmG;AACnG,IAAI;AAGJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4DE;AAGF,gGAAgG;AAChG,kCAAkC;AAClC,mGAAmG;AACnG,IAAI;AACJ,mCAAmC;AACnC,qCAAqC;AACrC,yCAAyC;AAEzC,QAAQ;AACR,uFAAuF;AACvF,gBAAgB;AAChB,gDAAgD;AAChD,IAAI;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+DE"}
@@ -1,4 +1,5 @@
1
1
  import { BuiltIns } from "./DeepReadableTypings";
2
+ import { DefaultDeepTypeDepth, Prev } from "./DeepTypeUtils";
2
3
  /**
3
4
  @see DeepPartial
4
5
  */
@@ -17,6 +18,10 @@ Use-cases:
17
18
  - Merging a default settings/config object with another object, the second object would be a deep partial of the default object.
18
19
  - Mocking and testing complex entities, where populating an entire object with its keys would be redundant in terms of the mock or test.
19
20
 
21
+ @typeParam T - The type to make deeply partial
22
+ @typeParam Options - Configuration options for the transformation
23
+ @typeParam D - Maximum recursion depth (default: 10)
24
+
20
25
  @example
21
26
  ```
22
27
  import type {DeepPartial} from 'type-fest';
@@ -57,27 +62,29 @@ const partialSettings: DeepPartial<Settings, {recurseIntoArrays: true}> = {
57
62
  @category Set
58
63
  @category Map
59
64
  */
60
- export type DeepPartial<T, Options extends DeepPartialOptions = {}> = T extends BuiltIns ? T : T extends Map<infer KeyType, infer ValueType> ? DeepPartialMap<KeyType, ValueType, Options> : T extends Set<infer ItemType> ? DeepPartialSet<ItemType, Options> : T extends ReadonlyMap<infer KeyType, infer ValueType> ? DeepPartialReadonlyMap<KeyType, ValueType, Options> : T extends ReadonlySet<infer ItemType> ? DeepPartialReadonlySet<ItemType, Options> : T extends ((...arguments_: any[]) => unknown) ? T | undefined : T extends object ? T extends ReadonlyArray<infer ItemType> ? Options['recurseIntoArrays'] extends true ? ItemType[] extends T ? readonly ItemType[] extends T ? ReadonlyArray<DeepPartial<ItemType | undefined, Options>> : Array<DeepPartial<ItemType | undefined, Options>> : DeepPartialObject<T, Options> : T : DeepPartialObject<T, Options> : unknown;
65
+ export type DeepPartial<T, Options extends DeepPartialOptions = {}, D extends number = DefaultDeepTypeDepth> = [
66
+ D
67
+ ] extends [never] ? Partial<T> : T extends BuiltIns ? T : T extends Map<infer KeyType, infer ValueType> ? DeepPartialMap<KeyType, ValueType, Options, D> : T extends Set<infer ItemType> ? DeepPartialSet<ItemType, Options, D> : T extends ReadonlyMap<infer KeyType, infer ValueType> ? DeepPartialReadonlyMap<KeyType, ValueType, Options, D> : T extends ReadonlySet<infer ItemType> ? DeepPartialReadonlySet<ItemType, Options, D> : T extends ((...arguments_: any[]) => unknown) ? T | undefined : T extends object ? T extends ReadonlyArray<infer ItemType> ? Options['recurseIntoArrays'] extends true ? ItemType[] extends T ? readonly ItemType[] extends T ? ReadonlyArray<DeepPartial<ItemType | undefined, Options, Prev[D]>> : Array<DeepPartial<ItemType | undefined, Options, Prev[D]>> : DeepPartialObject<T, Options, D> : T : DeepPartialObject<T, Options, D> : unknown;
61
68
  /**
62
69
  Same as `DeepPartial`, but accepts only `Map`s and as inputs. Internal helper for `DeepPartial`.
63
70
  */
64
- type DeepPartialMap<KeyType, ValueType, Options extends DeepPartialOptions> = {} & Map<DeepPartial<KeyType, Options>, DeepPartial<ValueType, Options>>;
71
+ type DeepPartialMap<KeyType, ValueType, Options extends DeepPartialOptions, D extends number> = {} & Map<DeepPartial<KeyType, Options, Prev[D]>, DeepPartial<ValueType, Options, Prev[D]>>;
65
72
  /**
66
73
  Same as `DeepPartial`, but accepts only `Set`s as inputs. Internal helper for `DeepPartial`.
67
74
  */
68
- type DeepPartialSet<T, Options extends DeepPartialOptions> = {} & Set<DeepPartial<T, Options>>;
75
+ type DeepPartialSet<T, Options extends DeepPartialOptions, D extends number> = {} & Set<DeepPartial<T, Options, Prev[D]>>;
69
76
  /**
70
77
  Same as `DeepPartial`, but accepts only `ReadonlyMap`s as inputs. Internal helper for `DeepPartial`.
71
78
  */
72
- type DeepPartialReadonlyMap<KeyType, ValueType, Options extends DeepPartialOptions> = {} & ReadonlyMap<DeepPartial<KeyType, Options>, DeepPartial<ValueType, Options>>;
79
+ type DeepPartialReadonlyMap<KeyType, ValueType, Options extends DeepPartialOptions, D extends number> = {} & ReadonlyMap<DeepPartial<KeyType, Options, Prev[D]>, DeepPartial<ValueType, Options, Prev[D]>>;
73
80
  /**
74
81
  Same as `DeepPartial`, but accepts only `ReadonlySet`s as inputs. Internal helper for `DeepPartial`.
75
82
  */
76
- type DeepPartialReadonlySet<T, Options extends DeepPartialOptions> = {} & ReadonlySet<DeepPartial<T, Options>>;
83
+ type DeepPartialReadonlySet<T, Options extends DeepPartialOptions, D extends number> = {} & ReadonlySet<DeepPartial<T, Options, Prev[D]>>;
77
84
  /**
78
85
  Same as `DeepPartial`, but accepts only `object`s as inputs. Internal helper for `DeepPartial`.
79
86
  */
80
- type DeepPartialObject<ObjectType extends object, Options extends DeepPartialOptions> = {
81
- [KeyType in keyof ObjectType]?: DeepPartial<ObjectType[KeyType], Options>;
87
+ type DeepPartialObject<ObjectType extends object, Options extends DeepPartialOptions, D extends number> = {
88
+ [KeyType in keyof ObjectType]?: DeepPartial<ObjectType[KeyType], Options, Prev[D]>;
82
89
  };
83
90
  export {};
@@ -1,3 +1,4 @@
1
+ import { DefaultDeepTypeDepth, Prev } from "./DeepTypeUtils";
1
2
  export type HasMultipleCallSignatures<T extends (...arguments_: any[]) => unknown> = T extends {
2
3
  (...arguments_: infer A): unknown;
3
4
  (...arguments_: any[]): unknown;
@@ -11,6 +12,9 @@ This is useful when a deeply nested structure needs to be exposed as completely
11
12
 
12
13
  Please upvote [this issue](https://github.com/microsoft/TypeScript/issues/13923) if you want to have this type as a built-in in TypeScript.
13
14
 
15
+ @typeParam T - The type to make deeply readonly
16
+ @typeParam D - Maximum recursion depth (default: 10)
17
+
14
18
  @example
15
19
  ```
16
20
  // data.json
@@ -40,19 +44,21 @@ Note that types containing overloaded functions are not made deeply readonly due
40
44
  @category Set
41
45
  @category Map
42
46
  */
43
- export type DeepReadonly<T> = T extends BuiltIns ? T : T extends (...arguments_: any[]) => unknown ? {} extends DeepReadonlyObject<T> ? T : HasMultipleCallSignatures<T> extends true ? T : ((...arguments_: Parameters<T>) => ReturnType<T>) & DeepReadonlyObject<T> : T extends Readonly<ReadonlyMap<infer KeyType, infer ValueType>> ? DeepReadonlyMap<KeyType, ValueType> : T extends Readonly<ReadonlySet<infer ItemType>> ? DeepReadonlySet<ItemType> : T extends readonly [] | readonly [...never[]] ? readonly [] : T extends readonly [infer U, ...infer V] ? readonly [DeepReadonly<U>, ...DeepReadonly<V>] : T extends readonly [...infer U, infer V] ? readonly [...DeepReadonly<U>, DeepReadonly<V>] : T extends ReadonlyArray<infer ItemType> ? ReadonlyArray<DeepReadonly<ItemType>> : T extends object ? DeepReadonlyObject<T> : unknown;
47
+ export type DeepReadonly<T, D extends number = DefaultDeepTypeDepth> = [
48
+ D
49
+ ] extends [never] ? Readonly<T> : T extends BuiltIns ? T : T extends (...arguments_: any[]) => unknown ? {} extends DeepReadonlyObject<T, D> ? T : HasMultipleCallSignatures<T> extends true ? T : ((...arguments_: Parameters<T>) => ReturnType<T>) & DeepReadonlyObject<T, D> : T extends Readonly<ReadonlyMap<infer KeyType, infer ValueType>> ? DeepReadonlyMap<KeyType, ValueType, D> : T extends Readonly<ReadonlySet<infer ItemType>> ? DeepReadonlySet<ItemType, D> : T extends readonly [] | readonly [...never[]] ? readonly [] : T extends readonly [infer U, ...infer V] ? readonly [DeepReadonly<U, Prev[D]>, ...DeepReadonly<V, Prev[D]>] : T extends readonly [...infer U, infer V] ? readonly [...DeepReadonly<U, Prev[D]>, DeepReadonly<V, Prev[D]>] : T extends ReadonlyArray<infer ItemType> ? ReadonlyArray<DeepReadonly<ItemType, Prev[D]>> : T extends object ? DeepReadonlyObject<T, D> : unknown;
44
50
  /**
45
51
  Same as `DeepReadonly`, but accepts only `ReadonlyMap`s as inputs. Internal helper for `DeepReadonly`.
46
52
  */
47
- type DeepReadonlyMap<KeyType, ValueType> = {} & Readonly<ReadonlyMap<DeepReadonly<KeyType>, DeepReadonly<ValueType>>>;
53
+ type DeepReadonlyMap<KeyType, ValueType, D extends number> = {} & Readonly<ReadonlyMap<DeepReadonly<KeyType, Prev[D]>, DeepReadonly<ValueType, Prev[D]>>>;
48
54
  /**
49
55
  Same as `DeepReadonly`, but accepts only `ReadonlySet`s as inputs. Internal helper for `DeepReadonly`.
50
56
  */
51
- type DeepReadonlySet<ItemType> = {} & Readonly<ReadonlySet<DeepReadonly<ItemType>>>;
57
+ type DeepReadonlySet<ItemType, D extends number> = {} & Readonly<ReadonlySet<DeepReadonly<ItemType, Prev[D]>>>;
52
58
  /**
53
59
  Same as `DeepReadonly`, but accepts only `object`s as inputs. Internal helper for `DeepReadonly`.
54
60
  */
55
- type DeepReadonlyObject<ObjectType extends object> = {
56
- readonly [KeyType in keyof ObjectType]: DeepReadonly<ObjectType[KeyType]>;
61
+ type DeepReadonlyObject<ObjectType extends object, D extends number> = {
62
+ readonly [KeyType in keyof ObjectType]: DeepReadonly<ObjectType[KeyType], Prev[D]>;
57
63
  };
58
64
  export {};
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Shared utilities for depth-limited recursive types.
3
+ *
4
+ * The Prev tuple is used to decrement depth counters in recursive type definitions.
5
+ * When D is used as an index into Prev, it returns D-1 (e.g., Prev[5] = 4).
6
+ * When D reaches 0, Prev[0] = never, which triggers the base case.
7
+ */
8
+ export type Prev = [
9
+ never,
10
+ 0,
11
+ 1,
12
+ 2,
13
+ 3,
14
+ 4,
15
+ 5,
16
+ 6,
17
+ 7,
18
+ 8,
19
+ 9,
20
+ 10,
21
+ 11,
22
+ 12,
23
+ 13,
24
+ 14,
25
+ 15,
26
+ 16,
27
+ 17,
28
+ 18,
29
+ 19,
30
+ 20,
31
+ ...0[]
32
+ ];
33
+ /**
34
+ * Default depth for Flatten type.
35
+ *
36
+ * Flatten generates exponential string unions for deep key paths.
37
+ * A depth of 5 covers paths like `a.b.c.d.e` which is sufficient
38
+ * for most state trees while avoiding excessive type computation.
39
+ */
40
+ export type DefaultFlattenDepth = 5;
41
+ /**
42
+ * Default depth for DeepReadonly and DeepPartial types.
43
+ *
44
+ * These types have simpler recursion than Flatten (no string unions),
45
+ * so they can safely recurse deeper. A depth of 10 handles most
46
+ * real-world nested state structures.
47
+ */
48
+ export type DefaultDeepTypeDepth = 10;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DeepTypeUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeepTypeUtils.js","sourceRoot":"","sources":["../../../src/state/data/DeepTypeUtils.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  import { Flatten } from "./DeepKeyTypings";
2
- export interface IChangeWrapper<WrapperStateType, WrapperDeepKeyType extends keyof Flatten<WrapperStateType, never> = keyof Flatten<WrapperStateType, never>> {
3
- (wrapperKey: WrapperDeepKeyType, value: Partial<Flatten<WrapperStateType, never>[WrapperDeepKeyType]>): void;
2
+ import { DefaultFlattenDepth } from "./DeepTypeUtils";
3
+ export interface IChangeWrapper<WrapperStateType, D extends number = DefaultFlattenDepth, WrapperDeepKeyType extends keyof Flatten<WrapperStateType, never, D> = keyof Flatten<WrapperStateType, never, D>> {
4
+ (wrapperKey: WrapperDeepKeyType, value: Partial<Flatten<WrapperStateType, never, D>[WrapperDeepKeyType]>): void;
4
5
  }
@@ -1,5 +1,6 @@
1
1
  import { Flatten } from "./DeepKeyTypings";
2
+ import { DefaultFlattenDepth } from "./DeepTypeUtils";
2
3
  import { IAppStateChangeConfigVO } from "./IAppStateChangeConfigVO";
3
4
  export interface IPreChangeHook extends Function {
4
- <StateType, DeepKeyType extends keyof Flatten<StateType>>(stateForTypings: StateType, deepKey: DeepKeyType, changeConfig: IAppStateChangeConfigVO): void;
5
+ <StateType, D extends number = DefaultFlattenDepth, DeepKeyType extends keyof Flatten<StateType, never, D> = keyof Flatten<StateType, never, D>>(stateForTypings: StateType, deepKey: DeepKeyType, changeConfig: IAppStateChangeConfigVO): void;
5
6
  }