@chocbite/ts-lib-state 1.0.2 → 1.1.0

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.
Files changed (3) hide show
  1. package/dist/index.d.ts +230 -364
  2. package/dist/index.js +488 -851
  3. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -44,7 +44,7 @@ interface StateArrayRead<TYPE> {
44
44
  }
45
45
  type SAR<AT> = StateArrayRead<AT>;
46
46
  type SAW<AT> = StateArrayWrite<AT>;
47
- type ArraySetter<AT, RRT extends Result<SAR<AT>, string>, REL extends Option<StateRelated>> = (value: SAW<AT>, state: OwnerWS$7<AT, RRT, REL>, old?: RRT) => Result<void, string>;
47
+ type ArraySetter<AT, RRT extends Result<SAR<AT>, string>, REL extends Option<StateRelated>> = (value: SAW<AT>, state: OwnerWS<AT, RRT, REL>, old?: RRT) => Result<void, string>;
48
48
  interface Owner$d<AT, RRT extends Result<SAR<AT>, string>, REL extends Option<StateRelated>> {
49
49
  set(value: ResultOk<AT[]>): void;
50
50
  set_ok(value: AT[]): void;
@@ -62,30 +62,30 @@ interface Owner$d<AT, RRT extends Result<SAR<AT>, string>, REL extends Option<St
62
62
  delete(val: AT): void;
63
63
  apply_read<B>(result: ResultOk<SAR<B>>, transform: (val: readonly B[], type: StateArrayReadType) => AT[]): void;
64
64
  }
65
- interface OwnerWS$7<AT, RRT extends Result<SAR<AT>, string>, REL extends Option<StateRelated>> extends Owner$d<AT, RRT, REL> {
65
+ interface OwnerWS<AT, RRT extends Result<SAR<AT>, string>, REL extends Option<StateRelated>> extends Owner$d<AT, RRT, REL> {
66
66
  setter: ArraySetter<AT, RRT, REL>;
67
67
  }
68
68
  type StateArraySyncROS<AT, REL extends Option<StateRelated> = Option<{}>> = StateROS<SAR<AT>, REL, SAW<AT>> & Owner$d<AT, ResultOk<SAR<AT>>, REL> & {
69
69
  readonly state: StateArray<AT, REL>;
70
70
  readonly read_only: StateArrayROS<AT, REL>;
71
- readonly read_write?: StateArrayROSWS<AT, REL>;
71
+ readonly read_write?: StateArrayROSW<AT, REL>;
72
72
  };
73
- type StateArraySyncROSWS<AT, REL extends Option<StateRelated> = Option<{}>> = StateROSWS<SAR<AT>, SAW<AT>, REL> & OwnerWS$7<AT, ResultOk<SAR<AT>>, REL> & {
73
+ type StateArraySyncROSWS<AT, REL extends Option<StateRelated> = Option<{}>> = StateROSW<SAR<AT>, SAW<AT>, REL> & OwnerWS<AT, ResultOk<SAR<AT>>, REL> & {
74
74
  readonly state: StateArray<AT, REL>;
75
75
  readonly read_only: StateArrayROS<AT, REL>;
76
- readonly read_write: StateArrayROSWS<AT, REL>;
76
+ readonly read_write: StateArrayROSW<AT, REL>;
77
77
  };
78
78
  type StateArraySyncRES<AT, REL extends Option<StateRelated> = Option<{}>> = StateRES<SAR<AT>, REL, SAW<AT>> & Owner$d<AT, ResultOk<SAR<AT>>, REL> & {
79
79
  set_err(error: string): void;
80
80
  readonly state: StateArray<AT, REL>;
81
81
  readonly read_only: StateArrayRES<AT, REL>;
82
- readonly read_write?: StateArrayRESWS<AT, REL>;
82
+ readonly read_write?: StateArrayRESW<AT, REL>;
83
83
  };
84
- type StateArraySyncRESWS<AT, REL extends Option<StateRelated> = Option<{}>> = StateRESWS<SAR<AT>, SAW<AT>, REL> & OwnerWS$7<AT, ResultOk<SAR<AT>>, REL> & {
84
+ type StateArraySyncRESWS<AT, REL extends Option<StateRelated> = Option<{}>> = StateRESW<SAR<AT>, SAW<AT>, REL> & OwnerWS<AT, ResultOk<SAR<AT>>, REL> & {
85
85
  set_err(error: string): void;
86
86
  readonly state: StateArray<AT, REL>;
87
87
  readonly read_only: StateArrayRES<AT, REL>;
88
- readonly read_write: StateArrayRESWS<AT, REL>;
88
+ readonly read_write: StateArrayRESW<AT, REL>;
89
89
  };
90
90
  declare function apply_read<AT>(array: AT[], read: StateArrayRead<AT>): AT[];
91
91
  declare function apply_read<AT, TAT = AT>(array: AT[], read: StateArrayRead<TAT>, transform: (value: TAT, index: number, array: readonly TAT[]) => AT): AT[];
@@ -97,26 +97,19 @@ type StateInferResult<S extends State<any>> = S extends StateROA<infer RT> ? Res
97
97
  type StateInferType<S extends State<any>> = S extends State<infer RT> ? RT : never;
98
98
  type StateInferSub<S extends State<any>> = StateSub<StateInferResult<S>>;
99
99
  /**Map of values or states related to a state */
100
- type StateRelated = {
101
- [key: string | symbol | number]: any;
102
- };
103
- interface StateHelper<WT, REL extends Option<StateRelated>> {
104
- related?: () => REL;
105
- limit?: (value: WT) => Result<WT, string>;
106
- check?: (value: WT) => Result<WT, string>;
107
- }
100
+ type StateRelated = {};
108
101
  type StateSetREXWS<RT, S, WT = RT> = (value: WT, state: S, old?: Result<RT, string>) => Result<void, string>;
109
102
  declare const STATE_KEY: unique symbol;
110
103
  interface StateBase$1<RT, WT, REL extends Option<StateRelated>, RRT extends Result<RT, string>> {
111
104
  [STATE_KEY]: true;
112
- /**Is state guarenteed sync*/
113
- readonly rsync: boolean;
114
- /**Is state guarenteed OK*/
115
- readonly rok: boolean;
116
105
  /**Allows getting value of the state*/
117
106
  then<T = RRT>(func: (value: RRT) => T | PromiseLike<T>): PromiseLike<T>;
107
+ /**Is state guarenteed sync*/
108
+ readonly rsync: boolean;
118
109
  /**Gets the current value of the state if state is sync*/
119
110
  get?(): RRT;
111
+ /**Is state guarenteed OK*/
112
+ readonly rok: boolean;
120
113
  /**Gets the value of the state without result, only works when state is OK */
121
114
  ok?(): RT;
122
115
  /**This adds a function as a subscriber to changes to the state
@@ -130,195 +123,194 @@ interface StateBase$1<RT, WT, REL extends Option<StateRelated>, RRT extends Resu
130
123
  in_use(): this | undefined;
131
124
  /**Returns if the state has a subscriber */
132
125
  has(subscriber: StateSub<RRT>): this | undefined;
133
- /**Returns if the state has a subscriber */
126
+ /**Returns the amount of subscribers the state has */
134
127
  amount(): number;
135
128
  /**Is state guarenteed writable*/
136
129
  readonly writable: boolean;
137
- /**Is state guarenteed sync for writes*/
138
- readonly wsync?: boolean;
139
130
  /** This attempts a write to the state, write is not guaranteed to succeed
140
131
  * @returns promise of result with error for the write*/
141
132
  write?(value: WT): Promise<Result<void, string>>;
142
- /** This attempts a write to the state, write is not guaranteed to succeed, this sync method is available on sync states
143
- * @returns result with error for the write*/
144
- write_sync?(value: WT): Result<void, string>;
145
133
  /**Limits given value to valid range if possible returns None if not possible */
146
- limit?(value: WT): Result<WT, string>;
134
+ limit?(value: WT): Promise<Result<WT, string>>;
147
135
  /**Checks if the value is valid and returns reason for invalidity */
148
- check?(value: WT): Result<WT, string>;
136
+ check?(value: WT): Promise<Result<WT, string>>;
149
137
  }
150
138
  interface REA$1<RT, REL extends Option<StateRelated>, WT> extends StateBase$1<RT, WT, REL, ResultOk<RT>> {
151
139
  readonly rsync: false;
152
140
  readonly rok: false;
153
141
  readonly writable: false;
154
- readonly wsync: false;
155
142
  }
156
143
  interface ROA$1<RT, REL extends Option<StateRelated>, WT> extends StateBase$1<RT, WT, REL, ResultOk<RT>> {
157
144
  readonly rsync: false;
158
145
  readonly rok: true;
159
146
  readonly writable: false;
160
- readonly wsync: false;
161
147
  }
162
148
  interface RES$1<RT, REL extends Option<StateRelated>, WT> extends StateBase$1<RT, WT, REL, Result<RT, string>> {
163
149
  readonly rsync: true;
164
- readonly rok: false;
165
150
  get(): Result<RT, string>;
151
+ readonly rok: false;
166
152
  readonly writable: false;
167
- readonly wsync: false;
168
153
  }
169
154
  interface ROS$1<RT, REL extends Option<StateRelated>, WT> extends StateBase$1<RT, WT, REL, ResultOk<RT>> {
170
155
  readonly rsync: true;
171
- readonly rok: true;
172
156
  get(): ResultOk<RT>;
157
+ readonly rok: true;
173
158
  ok(): RT;
174
159
  readonly writable: false;
175
- readonly wsync: false;
176
- }
177
- interface REAWA<RT, WT, REL extends Option<StateRelated>> extends StateBase$1<RT, WT, REL, ResultOk<RT>> {
178
- readonly rsync: false;
179
- readonly rok: false;
180
- readonly writable: true;
181
- readonly wsync: false;
182
- write(value: WT): Promise<Result<void, string>>;
183
- limit(value: WT): Result<WT, string>;
184
- check(value: WT): Result<WT, string>;
185
160
  }
186
- interface REAWS<RT, WT, REL extends Option<StateRelated>> extends StateBase$1<RT, WT, REL, ResultOk<RT>> {
161
+ interface REAW<RT, WT, REL extends Option<StateRelated>> extends StateBase$1<RT, WT, REL, ResultOk<RT>> {
187
162
  readonly rsync: false;
188
163
  readonly rok: false;
189
164
  readonly writable: true;
190
- readonly wsync: true;
191
165
  write(value: WT): Promise<Result<void, string>>;
192
- limit(value: WT): Result<WT, string>;
193
- check(value: WT): Result<WT, string>;
194
- write_sync(value: WT): Result<void, string>;
166
+ limit(value: WT): Promise<Result<WT, string>>;
167
+ check(value: WT): Promise<Result<WT, string>>;
195
168
  }
196
- interface ROAWA<RT, WT, REL extends Option<StateRelated>> extends StateBase$1<RT, WT, REL, ResultOk<RT>> {
169
+ interface ROAW<RT, WT, REL extends Option<StateRelated>> extends StateBase$1<RT, WT, REL, ResultOk<RT>> {
197
170
  readonly rsync: false;
198
171
  readonly rok: true;
199
172
  readonly writable: true;
200
- readonly wsync: false;
201
173
  write(value: WT): Promise<Result<void, string>>;
202
- limit(value: WT): Result<WT, string>;
203
- check(value: WT): Result<WT, string>;
174
+ limit(value: WT): Promise<Result<WT, string>>;
175
+ check(value: WT): Promise<Result<WT, string>>;
204
176
  }
205
- interface ROAWS<RT, WT, REL extends Option<StateRelated>> extends StateBase$1<RT, WT, REL, ResultOk<RT>> {
206
- readonly rsync: false;
207
- readonly rok: true;
208
- readonly writable: true;
209
- readonly wsync: true;
210
- write(value: WT): Promise<Result<void, string>>;
211
- limit(value: WT): Result<WT, string>;
212
- check(value: WT): Result<WT, string>;
213
- write_sync(value: WT): Result<void, string>;
214
- }
215
- interface RESWA<RT, WT, REL extends Option<StateRelated>> extends StateBase$1<RT, WT, REL, Result<RT, string>> {
177
+ interface RESW<RT, WT, REL extends Option<StateRelated>> extends StateBase$1<RT, WT, REL, Result<RT, string>> {
216
178
  readonly rsync: true;
217
- readonly rok: false;
218
179
  get(): Result<RT, string>;
219
- readonly writable: true;
220
- readonly wsync: false;
221
- write(value: WT): Promise<Result<void, string>>;
222
- limit(value: WT): Result<WT, string>;
223
- check(value: WT): Result<WT, string>;
224
- }
225
- interface RESWS<RT, WT, REL extends Option<StateRelated>> extends StateBase$1<RT, WT, REL, Result<RT, string>> {
226
- readonly rsync: true;
227
180
  readonly rok: false;
228
- get(): Result<RT, string>;
229
181
  readonly writable: true;
230
- readonly wsync: true;
231
182
  write(value: WT): Promise<Result<void, string>>;
232
- limit(value: WT): Result<WT, string>;
233
- check(value: WT): Result<WT, string>;
234
- write_sync(value: WT): Result<void, string>;
183
+ limit(value: WT): Promise<Result<WT, string>>;
184
+ check(value: WT): Promise<Result<WT, string>>;
235
185
  }
236
- interface ROSWA<RT, WT, REL extends Option<StateRelated>> extends StateBase$1<RT, WT, REL, ResultOk<RT>> {
186
+ interface ROSW<RT, WT, REL extends Option<StateRelated>> extends StateBase$1<RT, WT, REL, ResultOk<RT>> {
237
187
  readonly rsync: true;
238
- readonly rok: true;
239
188
  get(): ResultOk<RT>;
240
- ok(): RT;
241
- readonly writable: true;
242
- readonly wsync: false;
243
- write(value: WT): Promise<Result<void, string>>;
244
- limit(value: WT): Result<WT, string>;
245
- check(value: WT): Result<WT, string>;
246
- }
247
- interface ROSWS<RT, WT, REL extends Option<StateRelated>> extends StateBase$1<RT, WT, REL, ResultOk<RT>> {
248
- readonly rsync: true;
249
189
  readonly rok: true;
250
- get(): ResultOk<RT>;
251
190
  ok(): RT;
252
191
  readonly writable: true;
253
- readonly wsync: true;
254
192
  write(value: WT): Promise<Result<void, string>>;
255
- limit(value: WT): Result<WT, string>;
256
- check(value: WT): Result<WT, string>;
257
- write_sync(value: WT): Result<void, string>;
193
+ limit(value: WT): Promise<Result<WT, string>>;
194
+ check(value: WT): Promise<Result<WT, string>>;
258
195
  }
259
- type State<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateREA<RT, REL, WT> | StateROA<RT, REL, WT> | StateRES<RT, REL, WT> | StateROS<RT, REL, WT> | StateREAWA<RT, WT, REL> | StateREAWS<RT, WT, REL> | StateROAWA<RT, WT, REL> | StateROAWS<RT, WT, REL> | StateRESWA<RT, WT, REL> | StateRESWS<RT, WT, REL> | StateROSWA<RT, WT, REL> | StateROSWS<RT, WT, REL>;
260
- type StateREA<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = REA$1<RT, REL, WT> | StateREAWA<RT, WT, REL> | StateREAWS<RT, WT, REL> | StateROA<RT, REL, WT> | StateROS<RT, REL, WT> | StateRES<RT, REL, WT>;
261
- type StateROA<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = ROA$1<RT, REL, WT> | StateROAWA<RT, WT, REL> | StateROAWS<RT, WT, REL> | StateROS<RT, REL, WT>;
262
- type StateRES<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = RES$1<RT, REL, WT> | StateRESWA<RT, WT, REL> | StateRESWS<RT, WT, REL> | StateROS<RT, REL, WT>;
263
- type StateROS<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = ROS$1<RT, REL, WT> | StateROSWA<RT, WT, REL> | StateROSWS<RT, WT, REL>;
264
- type StateREAWA<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = REAWA<RT, WT, REL> | StateREAWS<RT, WT, REL> | StateROAWA<RT, WT, REL> | StateROSWA<RT, WT, REL> | StateRESWA<RT, WT, REL>;
265
- type StateREAWS<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = REAWS<RT, WT, REL> | StateROAWS<RT, WT, REL> | StateROSWS<RT, WT, REL> | StateRESWS<RT, WT, REL>;
266
- type StateROAWA<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = ROAWA<RT, WT, REL> | StateROAWS<RT, WT, REL> | StateROSWA<RT, WT, REL>;
267
- type StateROAWS<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = ROAWS<RT, WT, REL> | StateROSWS<RT, WT, REL>;
268
- type StateRESWA<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = RESWA<RT, WT, REL> | StateRESWS<RT, WT, REL> | StateROSWA<RT, WT, REL>;
269
- type StateRESWS<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = RESWS<RT, WT, REL> | StateROSWS<RT, WT, REL>;
270
- type StateROSWA<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = ROSWA<RT, WT, REL> | StateROSWS<RT, WT, REL>;
271
- type StateROSWS<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = ROSWS<RT, WT, REL>;
196
+ type State<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateREA<RT, REL, WT> | StateROA<RT, REL, WT> | StateRES<RT, REL, WT> | StateROS<RT, REL, WT> | StateREAW<RT, WT, REL> | StateROAW<RT, WT, REL> | StateRESW<RT, WT, REL> | StateROSW<RT, WT, REL>;
197
+ type StateREA<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = REA$1<RT, REL, WT> | StateREAW<RT, WT, REL> | StateROA<RT, REL, WT> | StateROS<RT, REL, WT> | StateRES<RT, REL, WT>;
198
+ type StateROA<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = ROA$1<RT, REL, WT> | StateROAW<RT, WT, REL> | StateROS<RT, REL, WT>;
199
+ type StateRES<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = RES$1<RT, REL, WT> | StateRESW<RT, WT, REL> | StateROS<RT, REL, WT>;
200
+ type StateROS<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = ROS$1<RT, REL, WT> | StateROSW<RT, WT, REL>;
201
+ type StateREAW<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = REAW<RT, WT, REL> | StateROAW<RT, WT, REL> | StateROSW<RT, WT, REL> | StateRESW<RT, WT, REL>;
202
+ type StateROAW<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = ROAW<RT, WT, REL> | StateROSW<RT, WT, REL>;
203
+ type StateRESW<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = RESW<RT, WT, REL> | StateROSW<RT, WT, REL>;
204
+ type StateROSW<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = ROSW<RT, WT, REL>;
272
205
  type StateArray<AT, REL extends Option<StateRelated> = Option<{}>> = State<StateArrayRead<AT>, StateArrayWrite<AT>, REL>;
273
206
  type StateArrayREA<AT, REL extends Option<StateRelated> = Option<{}>> = StateREA<StateArrayRead<AT>, REL, StateArrayWrite<AT>>;
274
207
  type StateArrayROA<AT, REL extends Option<StateRelated> = Option<{}>> = StateROA<StateArrayRead<AT>, REL, StateArrayWrite<AT>>;
275
208
  type StateArrayRES<AT, REL extends Option<StateRelated> = Option<{}>> = StateRES<StateArrayRead<AT>, REL, StateArrayWrite<AT>>;
276
209
  type StateArrayROS<AT, REL extends Option<StateRelated> = Option<{}>> = StateROS<StateArrayRead<AT>, REL, StateArrayWrite<AT>>;
277
- type StateArrayREAWS<AT, REL extends Option<StateRelated> = Option<{}>> = StateREAWS<StateArrayRead<AT>, StateArrayWrite<AT>, REL>;
278
- type StateArrayREAWA<AT, REL extends Option<StateRelated> = Option<{}>> = StateREAWA<StateArrayRead<AT>, StateArrayWrite<AT>, REL>;
279
- type StateArrayROAWS<AT, REL extends Option<StateRelated> = Option<{}>> = StateROAWS<StateArrayRead<AT>, StateArrayWrite<AT>, REL>;
280
- type StateArrayROAWA<AT, REL extends Option<StateRelated> = Option<{}>> = StateROAWA<StateArrayRead<AT>, StateArrayWrite<AT>, REL>;
281
- type StateArrayRESWS<AT, REL extends Option<StateRelated> = Option<{}>> = StateRESWS<StateArrayRead<AT>, StateArrayWrite<AT>, REL>;
282
- type StateArrayRESWA<AT, REL extends Option<StateRelated> = Option<{}>> = StateRESWA<StateArrayRead<AT>, StateArrayWrite<AT>, REL>;
283
- type StateArrayROSWS<AT, REL extends Option<StateRelated> = Option<{}>> = StateROSWS<StateArrayRead<AT>, StateArrayWrite<AT>, REL>;
284
- type StateArrayROSWA<AT, REL extends Option<StateRelated> = Option<{}>> = StateROSWA<StateArrayRead<AT>, StateArrayWrite<AT>, REL>;
210
+ type StateArrayREAW<AT, REL extends Option<StateRelated> = Option<{}>> = StateREAW<StateArrayRead<AT>, StateArrayWrite<AT>, REL>;
211
+ type StateArrayROAW<AT, REL extends Option<StateRelated> = Option<{}>> = StateROAW<StateArrayRead<AT>, StateArrayWrite<AT>, REL>;
212
+ type StateArrayRESW<AT, REL extends Option<StateRelated> = Option<{}>> = StateRESW<StateArrayRead<AT>, StateArrayWrite<AT>, REL>;
213
+ type StateArrayROSW<AT, REL extends Option<StateRelated> = Option<{}>> = StateROSW<StateArrayRead<AT>, StateArrayWrite<AT>, REL>;
214
+
215
+ interface StateRelatedBase extends StateRelated {
216
+ writable?: State<boolean>;
217
+ }
218
+ declare abstract class StateHelper<WT, REL extends Option<StateRelatedBase>> implements StateRelatedBase {
219
+ readonly writable?: State<boolean>;
220
+ constructor(writable?: State<boolean>);
221
+ abstract related(): REL;
222
+ abstract limit(value: WT): Promise<Result<WT, string>>;
223
+ abstract check(value: WT): Promise<Result<WT, string>>;
224
+ }
225
+ interface StateNumberRelated extends StateRelatedBase {
226
+ min?: State<number>;
227
+ max?: State<number>;
228
+ unit?: State<string>;
229
+ decimals?: State<number>;
230
+ step?: State<number>;
231
+ start?: State<number>;
232
+ }
233
+ declare class StateNumberHelper extends StateHelper<number, OptionSome<StateNumberRelated>> implements StateNumberRelated {
234
+ readonly min?: State<number>;
235
+ readonly max?: State<number>;
236
+ readonly unit?: State<string>;
237
+ readonly decimals?: State<number>;
238
+ readonly step?: State<number>;
239
+ readonly start?: State<number>;
240
+ constructor(min?: State<number>, max?: State<number>, unit?: State<string>, decimals?: State<number>, step?: State<number>, start?: State<number>, writable?: State<boolean>);
241
+ limit(value: number): Promise<Result<number, string>>;
242
+ check(value: number): Promise<Result<number, string>>;
243
+ related(): OptionSome<StateNumberRelated>;
244
+ }
245
+ interface StateStringRelated extends StateRelatedBase {
246
+ max_length?: State<number>;
247
+ max_length_bytes?: State<number>;
248
+ }
249
+ declare class StateStringHelper extends StateHelper<string, OptionSome<StateStringRelated>> implements StateStringRelated {
250
+ max_length?: State<number>;
251
+ max_length_bytes?: State<number>;
252
+ constructor(max_length?: State<number>, max_length_bytes?: State<number>, writable?: State<boolean>);
253
+ limit(value: string): Promise<Result<string, string>>;
254
+ check(value: string): Promise<Result<string, string>>;
255
+ related(): OptionSome<StateStringRelated>;
256
+ }
257
+ type EnumHelperEntry = {
258
+ name: string;
259
+ description?: string;
260
+ icon?: SVGFunc;
261
+ };
262
+ type StateEnumHelperList<K extends PropertyKey> = {
263
+ [P in K]: EnumHelperEntry;
264
+ };
265
+ interface StateEnumRelated<L extends StateEnumHelperList<any>> extends StateRelatedBase {
266
+ list: L;
267
+ map<K extends keyof L, R>(func: (key: K, val: EnumHelperEntry) => R): R[];
268
+ }
269
+ declare class StateEnumHelper<L extends StateEnumHelperList<any>, K extends PropertyKey = keyof L, R extends StateRelatedBase = StateEnumRelated<L>> extends StateHelper<K, OptionSome<R>> {
270
+ readonly list: State<L>;
271
+ constructor(list: State<L>, writable?: State<boolean>);
272
+ map<K extends keyof L, R>(func: (key: K, val: EnumHelperEntry) => R): Promise<R[]>;
273
+ limit(value: K): Promise<Result<K, string>>;
274
+ check(value: K): Promise<Result<K, string>>;
275
+ related(): OptionSome<R>;
276
+ }
285
277
 
286
- type SyncSetter<RT, RRT extends Result<RT, string>, REL extends Option<StateRelated>, WT = RT> = (value: WT, state: OwnerWS$6<RT, RRT, WT, REL>, old?: RRT) => Result<void, string>;
278
+ type SyncSetter<RT, RRT extends Result<RT, string>, REL extends Option<StateRelated>, WT = RT> = (value: WT, state: OwnerWrite$6<RT, RRT, WT, REL>, old?: RRT) => Promise<Result<void, string>>;
287
279
  interface Owner$c<RT, RRT extends Result<RT, string>, WT, REL extends Option<StateRelated>> {
288
280
  set(value: RRT): void;
289
281
  set_ok(value: RT): void;
290
282
  setter?: SyncSetter<RT, RRT, REL, WT>;
291
283
  readonly state: State<RT, WT, REL>;
292
284
  }
293
- interface OwnerWS$6<RT, RRT extends Result<RT, string>, WT, REL extends Option<StateRelated>> extends Owner$c<RT, RRT, WT, REL> {
285
+ interface OwnerWrite$6<RT, RRT extends Result<RT, string>, WT, REL extends Option<StateRelated>> extends Owner$c<RT, RRT, WT, REL> {
294
286
  setter: SyncSetter<RT, RRT, REL, WT>;
295
287
  }
296
288
  type StateSyncROS<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = StateROS<RT, REL, WT> & Owner$c<RT, ResultOk<RT>, WT, REL> & {
297
289
  readonly read_only: StateROS<RT, REL, WT>;
298
- readonly read_write?: StateROSWS<RT, WT, REL>;
290
+ readonly read_write?: StateROSW<RT, WT, REL>;
299
291
  };
300
- type StateSyncROSWS<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateROSWS<RT, WT, REL> & OwnerWS$6<RT, ResultOk<RT>, WT, REL> & {
292
+ type StateSyncROSW<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateROSW<RT, WT, REL> & OwnerWrite$6<RT, ResultOk<RT>, WT, REL> & {
301
293
  readonly read_only: StateROS<RT, REL, WT>;
302
- readonly read_write: StateROSWS<RT, WT, REL>;
294
+ readonly read_write: StateROSW<RT, WT, REL>;
303
295
  };
304
296
  type StateSyncRES<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = StateRES<RT, REL, WT> & Owner$c<RT, Result<RT, string>, WT, REL> & {
305
297
  set_err(error: string): void;
306
298
  readonly read_only: StateRES<RT, REL, WT>;
307
- readonly read_write?: StateRESWS<RT, WT, REL>;
299
+ readonly read_write?: StateRESW<RT, WT, REL>;
308
300
  };
309
- type StateSyncRESWS<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateRESWS<RT, WT, REL> & OwnerWS$6<RT, Result<RT, string>, WT, REL> & {
301
+ type StateSyncRESW<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateRESW<RT, WT, REL> & OwnerWrite$6<RT, Result<RT, string>, WT, REL> & {
310
302
  set_err(error: string): void;
311
303
  readonly read_only: StateRES<RT, REL, WT>;
312
- readonly read_write: StateRESWS<RT, WT, REL>;
304
+ readonly read_write: StateRESW<RT, WT, REL>;
313
305
  };
314
306
 
315
307
  declare abstract class StateBase<RT, WT, REL extends Option<StateRelated>, RRT extends Result<RT, string>> implements StateBase$1<RT, WT, REL, RRT> {
316
308
  #private;
317
309
  get [STATE_KEY](): true;
318
- abstract readonly rsync: boolean;
319
- abstract readonly rok: boolean;
320
310
  abstract then<T = RRT>(func: (value: RRT) => T | PromiseLike<T>): PromiseLike<T>;
311
+ abstract readonly rsync: boolean;
321
312
  get?(): RRT;
313
+ abstract readonly rok: boolean;
322
314
  ok?(): RT;
323
315
  sub<T = StateSub<RRT>>(func: StateSub<RRT>, update?: boolean): T;
324
316
  unsub<T = StateSub<RRT>>(func: T): T;
@@ -326,12 +318,10 @@ declare abstract class StateBase<RT, WT, REL extends Option<StateRelated>, RRT e
326
318
  in_use(): this | undefined;
327
319
  has(subscriber: StateSub<RRT>): this | undefined;
328
320
  amount(): number;
329
- abstract readonly wsync: boolean;
330
321
  abstract readonly writable: boolean;
331
322
  write?(value: WT): Promise<Result<void, string>>;
332
- limit?(value: WT): Result<WT, string>;
333
- check?(value: WT): Result<WT, string>;
334
- write_sync?(value: WT): Result<void, string>;
323
+ limit?(value: WT): Promise<Result<WT, string>>;
324
+ check?(value: WT): Promise<Result<WT, string>>;
335
325
  /**Called when subscriber is added*/
336
326
  protected on_subscribe(): void;
337
327
  /**Called when subscriber is removed*/
@@ -427,7 +417,7 @@ interface StateResourceOwnerREAWA<RT, WT, REL extends Option<StateRelated>> {
427
417
  get buffer(): Result<RT, string> | undefined;
428
418
  get state(): State<RT, WT, REL>;
429
419
  get read_only(): StateREA<RT, REL, WT>;
430
- get read_write(): StateREAWA<RT, WT, REL>;
420
+ get read_write(): StateREAW<RT, WT, REL>;
431
421
  }
432
422
  declare abstract class StateResourceREAWA<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> extends StateBase<RT, WT, REL, Result<RT, string>> implements StateResourceOwnerREAWA<RT, WT, REL> {
433
423
  #private;
@@ -456,19 +446,19 @@ declare abstract class StateResourceREAWA<RT, WT = RT, REL extends Option<StateR
456
446
  get buffer(): Result<RT, string> | undefined;
457
447
  get state(): State<RT, WT, REL>;
458
448
  get read_only(): StateREA<RT, REL, WT>;
459
- get read_write(): StateREAWA<RT, WT, REL>;
449
+ get read_write(): StateREAW<RT, WT, REL>;
460
450
  get rok(): false;
461
451
  get rsync(): false;
462
452
  then<T = Result<RT, string>>(func: (value: Result<RT, string>) => T | PromiseLike<T>): Promise<T>;
463
453
  get writable(): true;
464
454
  get wsync(): false;
465
455
  write(value: WT): Promise<Result<void, string>>;
466
- abstract limit(value: WT): Result<WT, string>;
467
- abstract check(value: WT): Result<WT, string>;
456
+ abstract limit(value: WT): Promise<Result<WT, string>>;
457
+ abstract check(value: WT): Promise<Result<WT, string>>;
468
458
  }
469
- interface OwnerWA$5<RT, WT, REL extends Option<StateRelated>> extends StateResourceOwnerREAWA<RT, WT, REL> {
459
+ interface OwnerWA<RT, WT, REL extends Option<StateRelated>> extends StateResourceOwnerREAWA<RT, WT, REL> {
470
460
  }
471
- type StateResourceFuncREAWA<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = StateREAWA<RT, WT, REL> & OwnerWA$5<RT, WT, REL>;
461
+ type StateResourceFuncREAWA<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = StateREAW<RT, WT, REL> & OwnerWA<RT, WT, REL>;
472
462
 
473
463
  /**State Resource
474
464
  * state for representing a remote resource
@@ -528,133 +518,62 @@ interface Owner$a<RT, WT, REL extends Option<StateRelated>> extends StateResourc
528
518
  }
529
519
  type StateResourceFuncROA<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = StateROA<RT, REL, WT> & Owner$a<RT, WT, REL>;
530
520
 
531
- type LazySetter<RT, RRT extends Result<RT, string>, REL extends Option<StateRelated>, WT = RT> = (value: WT, state: OwnerWS$5<RT, RRT, WT, REL>, old?: RRT) => Result<void, string>;
521
+ type LazySetter<RT, RRT extends Result<RT, string>, REL extends Option<StateRelated>, WT = RT> = (value: WT, state: OwnerWrite$5<RT, RRT, WT, REL>, old?: RRT) => Promise<Result<void, string>>;
532
522
  interface Owner$9<RT, RRT extends Result<RT, string>, WT, REL extends Option<StateRelated>> {
533
523
  set(value: RRT): void;
534
524
  set_ok(value: RT): void;
535
525
  setter?: LazySetter<RT, RRT, REL, WT>;
536
526
  readonly state: State<RT, WT, REL>;
537
527
  }
538
- interface OwnerWS$5<RT, RRT extends Result<RT, string>, WT, REL extends Option<StateRelated>> extends Owner$9<RT, RRT, WT, REL> {
528
+ interface OwnerWrite$5<RT, RRT extends Result<RT, string>, WT, REL extends Option<StateRelated>> extends Owner$9<RT, RRT, WT, REL> {
539
529
  setter: LazySetter<RT, RRT, REL, WT>;
540
530
  }
541
531
  type StateLazyROS<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = StateROS<RT, REL, WT> & Owner$9<RT, ResultOk<RT>, WT, REL> & {
542
532
  readonly read_only: StateROS<RT, REL, WT>;
543
- readonly read_write?: StateROSWS<RT, WT, REL>;
533
+ readonly read_write?: StateROSW<RT, WT, REL>;
544
534
  };
545
- type StateLazyROSWS<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateROSWS<RT, WT, REL> & OwnerWS$5<RT, ResultOk<RT>, WT, REL> & {
535
+ type StateLazyROSW<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateROSW<RT, WT, REL> & OwnerWrite$5<RT, ResultOk<RT>, WT, REL> & {
546
536
  readonly read_only: StateROS<RT, REL, WT>;
547
- readonly read_write: StateROSWS<RT, WT, REL>;
537
+ readonly read_write: StateROSW<RT, WT, REL>;
548
538
  };
549
539
  type StateLazyRES<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = StateRES<RT, REL, WT> & Owner$9<RT, Result<RT, string>, WT, REL> & {
550
540
  set_err(error: string): void;
551
541
  readonly read_only: StateRES<RT, REL, WT>;
552
- readonly read_write?: StateRESWS<RT, WT, REL>;
542
+ readonly read_write?: StateRESW<RT, WT, REL>;
553
543
  };
554
- type StateLazyRESWS<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateRESWS<RT, WT, REL> & OwnerWS$5<RT, Result<RT, string>, WT, REL> & {
544
+ type StateLazyRESW<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateRESW<RT, WT, REL> & OwnerWrite$5<RT, Result<RT, string>, WT, REL> & {
555
545
  set_err(error: string): void;
556
546
  readonly read_only: StateRES<RT, REL, WT>;
557
- readonly read_write: StateRESWS<RT, WT, REL>;
547
+ readonly read_write: StateRESW<RT, WT, REL>;
558
548
  };
559
549
 
560
- interface StateNumberRelated extends StateRelated {
561
- min?: number;
562
- max?: number;
563
- unit?: string;
564
- decimals?: number;
565
- }
566
- declare class StateNumberHelper implements StateNumberRelated, StateHelper<number, OptionSome<StateNumberRelated>> {
567
- min: number | undefined;
568
- max: number | undefined;
569
- unit: string | undefined;
570
- decimals: number | undefined;
571
- step: number | undefined;
572
- start: number | undefined;
573
- constructor(min?: number, max?: number, unit?: string, decimals?: number, step?: number, start?: number);
574
- limit(value: number): Result<number, string>;
575
- check(value: number): Result<number, string>;
576
- related(): OptionSome<StateNumberRelated>;
577
- }
578
- interface StateStringRelated extends StateRelated {
579
- max_length?: number;
580
- max_length_bytes?: number;
581
- }
582
- declare class StateStringHelper implements StateStringRelated, StateHelper<string, OptionSome<StateStringRelated>> {
583
- max_length: number | undefined;
584
- max_length_bytes: number | undefined;
585
- constructor(max_length?: number, max_length_bytes?: number);
586
- limit(value: string): Result<string, string>;
587
- check(value: string): Result<string, string>;
588
- related(): OptionSome<StateStringRelated>;
589
- }
590
- type EnumHelperEntry = {
591
- name: string;
592
- description?: string;
593
- icon?: SVGFunc;
594
- };
595
- type StateEnumHelperList<K extends PropertyKey> = {
596
- [P in K]: EnumHelperEntry;
597
- };
598
- interface StateEnumRelated<L extends StateEnumHelperList<any>> extends StateRelated {
599
- list: L;
600
- map<K extends keyof L, R>(func: (key: K, val: EnumHelperEntry) => R): R[];
601
- }
602
- declare class StateEnumHelper<L extends StateEnumHelperList<any>, K extends PropertyKey = keyof L, R extends StateRelated = StateEnumRelated<L>> implements StateHelper<K, OptionSome<R>>, StateEnumRelated<L> {
603
- list: L;
604
- constructor(list: L);
605
- map<K extends keyof L, R>(func: (key: K, val: EnumHelperEntry) => R): R[];
606
- limit(value: K): Result<K, string>;
607
- check(value: K): Result<K, string>;
608
- related(): OptionSome<R>;
609
- }
610
-
611
- type DelayedSetterWS<RT, RRT extends Result<RT, string>, REL extends Option<StateRelated>, WT = RT> = (value: WT, state: OwnerWS$4<RT, RRT, WT, REL>, old?: RRT) => Result<void, string>;
612
- type DelayedSetterWA<RT, RRT extends Result<RT, string>, REL extends Option<StateRelated>, WT = RT> = (value: WT, state: OwnerWA$4<RT, RRT, WT, REL>, old?: RRT) => Promise<Result<void, string>>;
550
+ type DelayedSetter<RT, RRT extends Result<RT, string>, REL extends Option<StateRelated>, WT = RT> = (value: WT, state: OwnerWrite$4<RT, RRT, WT, REL>, old?: RRT) => Promise<Result<void, string>>;
613
551
  interface Owner$8<RT, RRT extends Result<RT, string>, WT, REL extends Option<StateRelated>> {
614
552
  set(value: RRT): void;
615
553
  set_ok(value: RT): void;
616
- setter_sync?: DelayedSetterWS<RT, RRT, REL, WT>;
617
- setter_async?: DelayedSetterWA<RT, RRT, REL, WT>;
554
+ setter?: DelayedSetter<RT, RRT, REL, WT>;
618
555
  readonly state: State<RT, WT, REL>;
619
556
  }
620
- interface OwnerWS$4<RT, RRT extends Result<RT, string>, WT, REL extends Option<StateRelated>> extends Owner$8<RT, RRT, WT, REL> {
621
- setter_sync: DelayedSetterWS<RT, RRT, REL, WT>;
622
- }
623
- interface OwnerWA$4<RT, RRT extends Result<RT, string>, WT, REL extends Option<StateRelated>> extends Owner$8<RT, RRT, WT, REL> {
624
- setter_async: DelayedSetterWA<RT, RRT, REL, WT>;
557
+ interface OwnerWrite$4<RT, RRT extends Result<RT, string>, WT, REL extends Option<StateRelated>> extends Owner$8<RT, RRT, WT, REL> {
558
+ setter: DelayedSetter<RT, RRT, REL, WT>;
625
559
  }
626
560
  type StateDelayedROA<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = StateROA<RT, REL, WT> & Owner$8<RT, ResultOk<RT>, WT, REL> & {
627
561
  readonly read_only: StateROA<RT, REL, WT>;
628
- readonly read_write_sync?: StateROAWS<RT, WT, REL>;
629
- readonly read_write_async?: StateROAWA<RT, WT, REL>;
630
- };
631
- type StateDelayedROAWS<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateROAWS<RT, WT, REL> & OwnerWS$4<RT, ResultOk<RT>, WT, REL> & {
632
- readonly read_only: StateROA<RT, REL, WT>;
633
- readonly read_write_sync: StateROAWS<RT, WT, REL>;
634
- readonly read_write_async?: StateROAWA<RT, WT, REL>;
562
+ readonly read_write?: StateROAW<RT, WT, REL>;
635
563
  };
636
- type StateDelayedROAWA<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateROAWA<RT, WT, REL> & OwnerWA$4<RT, ResultOk<RT>, WT, REL> & {
564
+ type StateDelayedROAW<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateROAW<RT, WT, REL> & OwnerWrite$4<RT, ResultOk<RT>, WT, REL> & {
637
565
  readonly read_only: StateROA<RT, REL, WT>;
638
- readonly read_write_sync?: StateROAWS<RT, WT, REL>;
639
- readonly read_write_async: StateROAWA<RT, WT, REL>;
566
+ readonly read_write: StateROAW<RT, WT, REL>;
640
567
  };
641
568
  type StateDelayedREA<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = StateREA<RT, REL, WT> & Owner$8<RT, Result<RT, string>, WT, REL> & {
642
569
  set_err(error: string): void;
643
570
  readonly read_only: StateREA<RT, REL, WT>;
644
- readonly read_write_sync?: StateREAWS<RT, WT, REL>;
645
- readonly read_write_async?: StateREAWA<RT, WT, REL>;
571
+ readonly read_write?: StateREAW<RT, WT, REL>;
646
572
  };
647
- type StateDelayedREAWS<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateREAWS<RT, WT, REL> & OwnerWS$4<RT, Result<RT, string>, WT, REL> & {
573
+ type StateDelayedREAW<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateREAW<RT, WT, REL> & OwnerWrite$4<RT, Result<RT, string>, WT, REL> & {
648
574
  set_err(error: string): void;
649
575
  readonly read_only: StateREA<RT, REL, WT>;
650
- readonly read_write_sync: StateREAWS<RT, WT, REL>;
651
- readonly read_write_async?: StateREAWA<RT, WT, REL>;
652
- };
653
- type StateDelayedREAWA<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateREAWA<RT, WT, REL> & OwnerWA$4<RT, Result<RT, string>, WT, REL> & {
654
- set_err(error: string): void;
655
- readonly read_only: StateREA<RT, REL, WT>;
656
- readonly read_write_sync?: StateREAWS<RT, WT, REL>;
657
- readonly read_write_async: StateREAWA<RT, WT, REL>;
576
+ readonly read_write: StateREAW<RT, WT, REL>;
658
577
  };
659
578
 
660
579
  type StateCollectedTransVal<IN extends State<any>[]> = {
@@ -807,35 +726,23 @@ interface Owner$3<S, RIN, ROUT, WIN, WOUT> {
807
726
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
808
727
  set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
809
728
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
810
- set_transform_write(transform: (val: WOUT) => WIN): void;
729
+ set_transform_write(wout_win: (val: WOUT) => WIN, win_wout: (val: WIN) => WOUT): void;
811
730
  get state(): State<ROUT, WOUT, OptionNone>;
812
731
  get read_only(): StateREA<ROUT, OptionNone, WOUT>;
813
732
  }
814
733
  type StateProxyREA<S extends State<RIN, WIN>, RIN = S extends State<infer RT> ? RT : never, ROUT = RIN, WIN = S extends State<any, infer WT> ? WT : any, WOUT = WIN> = StateREA<ROUT, OptionNone, WOUT> & Owner$3<S, RIN, ROUT, WIN, WOUT>;
815
- interface OwnerWS$3<S, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> {
734
+ interface OwnerWrite$3<S, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> {
816
735
  /**Sets the state that is being proxied, and updates subscribers with new value*/
817
736
  set_state(state: S): void;
818
737
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
819
738
  set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
820
739
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
821
- set_transform_write(transform: (val: WOUT) => WIN): void;
740
+ set_transform_write(wout_win: (val: WOUT) => WIN, win_wout: (val: WIN) => WOUT): void;
822
741
  get state(): State<ROUT, WOUT, OptionNone>;
823
742
  get read_only(): StateREA<ROUT, OptionNone, WOUT>;
824
- get read_write(): StateREAWS<ROUT, WOUT, OptionNone>;
743
+ get read_write(): StateREAW<ROUT, WOUT, OptionNone>;
825
744
  }
826
- type StateProxyREAWS<S extends StateREAWS<RIN, WIN>, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> = StateREAWS<ROUT, WOUT, OptionNone> & OwnerWS$3<S, RIN, WIN, ROUT, WOUT>;
827
- interface OwnerWA$3<S, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> {
828
- /**Sets the state that is being proxied, and updates subscribers with new value*/
829
- set_state(state: S): void;
830
- /**Changes the transform function of the proxy, and updates subscribers with new value*/
831
- set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
832
- /**Changes the transform function of the proxy, and updates subscribers with new value*/
833
- set_transform_write(transform: (val: WOUT) => WIN): void;
834
- get state(): State<ROUT, WOUT, OptionNone>;
835
- get read_only(): StateREA<ROUT, OptionNone, WOUT>;
836
- get read_write(): StateREAWA<ROUT, WOUT, OptionNone>;
837
- }
838
- type StateProxyREAWA<S extends StateREAWA<RIN, WIN>, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> = StateREAWA<ROUT, WOUT, OptionNone> & OwnerWA$3<S, RIN, WIN, ROUT, WOUT>;
745
+ type StateProxyREAW<S extends StateREAW<RIN, WIN>, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> = StateREAW<ROUT, WOUT, OptionNone> & OwnerWrite$3<S, RIN, WIN, ROUT, WOUT>;
839
746
 
840
747
  interface Owner$2<S, RIN, ROUT, WIN, WOUT> {
841
748
  /**Sets the state that is being proxied, and updates subscribers with new value*/
@@ -843,35 +750,23 @@ interface Owner$2<S, RIN, ROUT, WIN, WOUT> {
843
750
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
844
751
  set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
845
752
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
846
- set_transform_write(transform: (val: WOUT) => WIN): void;
753
+ set_transform_write(wout_win: (val: WOUT) => WIN, win_wout: (val: WIN) => WOUT): void;
847
754
  get state(): State<ROUT, WOUT, OptionNone>;
848
755
  get read_only(): StateRES<ROUT, OptionNone, WOUT>;
849
756
  }
850
757
  type StateProxyRES<S extends StateRES<RIN, any, WIN>, RIN = S extends State<infer RT> ? RT : never, ROUT = RIN, WIN = S extends State<any, infer WT> ? WT : any, WOUT = WIN> = StateRES<ROUT, OptionNone, WOUT> & Owner$2<S, RIN, ROUT, WIN, WOUT>;
851
- interface OwnerWS$2<S, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> {
758
+ interface OwnerWrite$2<S, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> {
852
759
  /**Sets the state that is being proxied, and updates subscribers with new value*/
853
760
  set_state(state: S): void;
854
761
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
855
762
  set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
856
763
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
857
- set_transform_write(transform: (val: WOUT) => WIN): void;
764
+ set_transform_write(wout_win: (val: WOUT) => WIN, win_wout: (val: WIN) => WOUT): void;
858
765
  get state(): State<ROUT, WOUT, OptionNone>;
859
766
  get read_only(): StateRES<ROUT, OptionNone, WOUT>;
860
- get read_write(): StateRESWS<ROUT, WOUT, OptionNone>;
767
+ get read_write(): StateRESW<ROUT, WOUT, OptionNone>;
861
768
  }
862
- type StateProxyRESWS<S extends StateRESWS<RIN, WIN>, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> = StateRESWS<ROUT, WOUT, OptionNone> & OwnerWS$2<S, RIN, WIN, ROUT, WOUT>;
863
- interface OwnerWA$2<S, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> {
864
- /**Sets the state that is being proxied, and updates subscribers with new value*/
865
- set_state(state: S): void;
866
- /**Changes the transform function of the proxy, and updates subscribers with new value*/
867
- set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
868
- /**Changes the transform function of the proxy, and updates subscribers with new value*/
869
- set_transform_write(transform: (val: WOUT) => WIN): void;
870
- get state(): State<ROUT, WOUT, OptionNone>;
871
- get read_only(): StateRES<ROUT, OptionNone, WOUT>;
872
- get read_write(): StateRESWA<ROUT, WOUT, OptionNone>;
873
- }
874
- type StateProxyRESWA<S extends StateRESWA<RIN, WIN>, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> = StateRESWA<ROUT, WOUT, OptionNone> & OwnerWA$2<S, RIN, WIN, ROUT, WOUT>;
769
+ type StateProxyRESW<S extends StateRESW<RIN, WIN>, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> = StateRESW<ROUT, WOUT, OptionNone> & OwnerWrite$2<S, RIN, WIN, ROUT, WOUT>;
875
770
 
876
771
  interface Owner$1<S extends State<any, any>, RIN, ROUT, WIN, WOUT> {
877
772
  /**Sets the state that is being proxied, and updates subscribers with new value*/
@@ -879,36 +774,24 @@ interface Owner$1<S extends State<any, any>, RIN, ROUT, WIN, WOUT> {
879
774
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
880
775
  set_transform_read(transform: ROATransform<S, RIN, ROUT>): void;
881
776
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
882
- set_transform_write(transform: (val: WOUT) => WIN): void;
777
+ set_transform_write(wout_win: (val: WOUT) => WIN, win_wout: (val: WIN) => WOUT): void;
883
778
  get state(): State<ROUT, WOUT, OptionNone>;
884
779
  get read_only(): StateROA<ROUT, OptionNone, WOUT>;
885
780
  }
886
781
  type ROATransform<S extends State<any, any>, IN, OUT> = (value: S extends StateROA<any> ? ResultOk<IN> : IN extends StateREA<any> ? Result<IN, string> : never) => ResultOk<OUT>;
887
782
  type StateProxyROA<S extends State<RIN, WIN>, RIN = S extends State<infer RT> ? RT : never, ROUT = RIN, WIN = S extends State<any, infer WT> ? WT : any, WOUT = WIN> = StateROA<ROUT, OptionNone, WOUT> & Owner$1<S, RIN, ROUT, WIN, WOUT>;
888
- interface OwnerWS$1<S, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> {
783
+ interface OwnerWrite$1<S, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> {
889
784
  /**Sets the state that is being proxied, and updates subscribers with new value*/
890
785
  set_state(state: S): void;
891
786
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
892
787
  set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
893
788
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
894
- set_transform_write(transform: (val: WOUT) => WIN): void;
789
+ set_transform_write(wout_win: (val: WOUT) => WIN, win_wout: (val: WIN) => WOUT): void;
895
790
  get state(): State<ROUT, WOUT, OptionNone>;
896
791
  get read_only(): StateROA<ROUT, OptionNone, WOUT>;
897
- get read_write(): StateROAWS<ROUT, WOUT, OptionNone>;
792
+ get read_write(): StateROAW<ROUT, WOUT, OptionNone>;
898
793
  }
899
- type StateProxyROAWS<S extends StateREAWS<RIN, WIN>, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> = StateROAWS<ROUT, WOUT, OptionNone> & OwnerWS$1<S, RIN, WIN, ROUT, WOUT>;
900
- interface OwnerWA$1<S, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> {
901
- /**Sets the state that is being proxied, and updates subscribers with new value*/
902
- set_state(state: S): void;
903
- /**Changes the transform function of the proxy, and updates subscribers with new value*/
904
- set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
905
- /**Changes the transform function of the proxy, and updates subscribers with new value*/
906
- set_transform_write(transform: (val: WOUT) => WIN): void;
907
- get state(): State<ROUT, WOUT, OptionNone>;
908
- get read_only(): StateROA<ROUT, OptionNone, WOUT>;
909
- get read_write(): StateROAWA<ROUT, WOUT, OptionNone>;
910
- }
911
- type StateProxyROAWA<S extends StateREAWA<RIN, WIN>, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> = StateROAWA<ROUT, WOUT, OptionNone> & OwnerWA$1<S, RIN, WIN, ROUT, WOUT>;
794
+ type StateProxyROAW<S extends StateREAW<RIN, WIN>, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> = StateROAW<ROUT, WOUT, OptionNone> & OwnerWrite$1<S, RIN, WIN, ROUT, WOUT>;
912
795
 
913
796
  interface Owner<S extends State<any, any>, RIN, ROUT, WIN, WOUT> {
914
797
  /**Sets the state that is being proxied, and updates subscribers with new value*/
@@ -916,36 +799,24 @@ interface Owner<S extends State<any, any>, RIN, ROUT, WIN, WOUT> {
916
799
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
917
800
  set_transform_read(transform: ROSTransform<S, RIN, ROUT>): void;
918
801
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
919
- set_transform_write(transform: (val: WOUT) => WIN): void;
802
+ set_transform_write(wout_win: (val: WOUT) => WIN, win_wout: (val: WIN) => WOUT): void;
920
803
  get state(): State<ROUT, WOUT, OptionNone>;
921
804
  get read_only(): StateROS<ROUT, OptionNone, WOUT>;
922
805
  }
923
806
  type ROSTransform<S extends State<any, any>, RIN, ROUT> = (value: S extends StateROS<any> ? ResultOk<RIN> : RIN extends StateRES<any> ? Result<RIN, string> : never) => ResultOk<ROUT>;
924
807
  type StateProxyROS<S extends StateRES<RIN, any, WIN>, RIN = S extends State<infer RT> ? RT : never, ROUT = RIN, WIN = S extends State<any, infer WT> ? WT : any, WOUT = WIN> = StateROS<ROUT, OptionNone, WOUT> & Owner<S, RIN, ROUT, WIN, WOUT>;
925
- interface OwnerWS<S, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> {
808
+ interface OwnerWrite<S, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> {
926
809
  /**Sets the state that is being proxied, and updates subscribers with new value*/
927
810
  set_state(state: S): void;
928
811
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
929
812
  set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
930
813
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
931
- set_transform_write(transform: (val: WOUT) => WIN): void;
814
+ set_transform_write(wout_win: (val: WOUT) => WIN, win_wout: (val: WIN) => WOUT): void;
932
815
  get state(): State<ROUT, WOUT, OptionNone>;
933
816
  get read_only(): StateROS<ROUT, OptionNone, WOUT>;
934
- get read_write(): StateROSWS<ROUT, WOUT, OptionNone>;
817
+ get read_write(): StateROSW<ROUT, WOUT, OptionNone>;
935
818
  }
936
- type StateProxyROSWS<S extends StateRESWS<RIN, WIN>, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> = StateROSWS<ROUT, WOUT, OptionNone> & OwnerWS<S, RIN, WIN, ROUT, WOUT>;
937
- interface OwnerWA<S, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> {
938
- /**Sets the state that is being proxied, and updates subscribers with new value*/
939
- set_state(state: S): void;
940
- /**Changes the transform function of the proxy, and updates subscribers with new value*/
941
- set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
942
- /**Changes the transform function of the proxy, and updates subscribers with new value*/
943
- set_transform_write(transform: (val: WOUT) => WIN): void;
944
- get state(): State<ROUT, WOUT, OptionNone>;
945
- get read_only(): StateROS<ROUT, OptionNone, WOUT>;
946
- get read_write(): StateROSWA<ROUT, WOUT, OptionNone>;
947
- }
948
- type StateProxyROSWA<S extends StateRESWA<RIN, WIN>, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> = StateROSWA<ROUT, WOUT, OptionNone> & OwnerWA<S, RIN, WIN, ROUT, WOUT>;
819
+ type StateProxyROSW<S extends StateRESW<RIN, WIN>, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> = StateROSW<ROUT, WOUT, OptionNone> & OwnerWrite<S, RIN, WIN, ROUT, WOUT>;
949
820
 
950
821
  declare const state: {
951
822
  /**The state key is a symbol used to identify state objects
@@ -983,7 +854,7 @@ declare const state: {
983
854
  }, REL>): StateArraySyncROS<AT, REL>;
984
855
  };
985
856
  ros_ws: {
986
- ok<AT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: AT[] | undefined, setter: StateSetREXWS<StateArrayRead<AT>, OwnerWS$7<AT, _chocbite_ts_lib_result.ResultOk<StateArrayRead<AT>>, REL>, {
857
+ ok<AT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: AT[] | undefined, setter: StateSetREXWS<StateArrayRead<AT>, OwnerWS<AT, _chocbite_ts_lib_result.ResultOk<StateArrayRead<AT>>, REL>, {
987
858
  type: "pop";
988
859
  } | {
989
860
  type: "shift";
@@ -1090,7 +961,7 @@ declare const state: {
1090
961
  }, REL>): StateArraySyncRES<AT, REL>;
1091
962
  };
1092
963
  res_ws: {
1093
- ok<AT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: AT[] | undefined, setter: StateSetREXWS<StateArrayRead<AT>, OwnerWS$7<AT, _chocbite_ts_lib_result.Result<StateArrayRead<AT>, string>, REL>, {
964
+ ok<AT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: AT[] | undefined, setter: StateSetREXWS<StateArrayRead<AT>, OwnerWS<AT, _chocbite_ts_lib_result.Result<StateArrayRead<AT>, string>, REL>, {
1094
965
  type: "pop";
1095
966
  } | {
1096
967
  type: "shift";
@@ -1141,7 +1012,7 @@ declare const state: {
1141
1012
  delete_count: number;
1142
1013
  items?: readonly AT[] | undefined;
1143
1014
  }, REL>): StateArraySyncRESWS<AT, REL>;
1144
- err<AT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(error: string, setter: StateSetREXWS<StateArrayRead<AT>, OwnerWS$7<AT, _chocbite_ts_lib_result.Result<StateArrayRead<AT>, string>, REL>, {
1015
+ err<AT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(error: string, setter: StateSetREXWS<StateArrayRead<AT>, OwnerWS<AT, _chocbite_ts_lib_result.Result<StateArrayRead<AT>, string>, REL>, {
1145
1016
  type: "pop";
1146
1017
  } | {
1147
1018
  type: "shift";
@@ -1242,28 +1113,19 @@ declare const state: {
1242
1113
  ok<RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>, WT = any>(init?: () => PromiseLike<RT>, helper?: StateHelper<WT, REL>): StateDelayedROA<RT, REL, WT>;
1243
1114
  result<RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>, WT = any>(init?: () => PromiseLike<_chocbite_ts_lib_result.ResultOk<RT>>, helper?: StateHelper<WT, REL>): StateDelayedROA<RT, REL, WT>;
1244
1115
  };
1245
- roa_ws: {
1246
- ok<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init?: () => PromiseLike<RT>, setter?: ((value: WT, state: OwnerWS$4<RT, _chocbite_ts_lib_result.ResultOk<RT>, WT, REL>, old?: _chocbite_ts_lib_result.ResultOk<RT> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>): StateDelayedROAWS<RT, WT, REL>;
1247
- result<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init?: () => PromiseLike<_chocbite_ts_lib_result.ResultOk<RT>>, setter?: ((value: WT, state: OwnerWS$4<RT, _chocbite_ts_lib_result.ResultOk<RT>, WT, REL>, old?: _chocbite_ts_lib_result.ResultOk<RT> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>): StateDelayedROAWS<RT, WT, REL>;
1248
- };
1249
- roa_wa: {
1250
- ok<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init?: () => PromiseLike<RT>, setter?: ((value: WT, state: OwnerWA$4<RT, _chocbite_ts_lib_result.ResultOk<RT>, WT, REL>, old?: _chocbite_ts_lib_result.ResultOk<RT> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateDelayedROAWA<RT, WT, REL>;
1251
- result<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init?: () => PromiseLike<_chocbite_ts_lib_result.ResultOk<RT>>, setter?: ((value: WT, state: OwnerWA$4<RT, _chocbite_ts_lib_result.ResultOk<RT>, WT, REL>, old?: _chocbite_ts_lib_result.ResultOk<RT> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateDelayedROAWA<RT, WT, REL>;
1116
+ roaw: {
1117
+ ok<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init?: () => PromiseLike<RT>, setter?: ((value: WT, state: OwnerWrite$4<RT, _chocbite_ts_lib_result.ResultOk<RT>, WT, REL>, old?: _chocbite_ts_lib_result.ResultOk<RT> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateDelayedROAW<RT, WT, REL>;
1118
+ result<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init?: () => PromiseLike<_chocbite_ts_lib_result.ResultOk<RT>>, setter?: ((value: WT, state: OwnerWrite$4<RT, _chocbite_ts_lib_result.ResultOk<RT>, WT, REL>, old?: _chocbite_ts_lib_result.ResultOk<RT> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateDelayedROAW<RT, WT, REL>;
1252
1119
  };
1253
1120
  rea: {
1254
1121
  ok<RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>, WT = any>(init?: () => PromiseLike<RT>, helper?: StateHelper<WT, REL>): StateDelayedREA<RT, REL, WT>;
1255
1122
  err<RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>, WT = any>(init?: () => PromiseLike<string>, helper?: StateHelper<WT, REL>): StateDelayedREA<RT, REL, WT>;
1256
1123
  result<RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>, WT = any>(init?: () => PromiseLike<_chocbite_ts_lib_result.Result<RT, string>>, helper?: StateHelper<WT, REL>): StateDelayedREA<RT, REL, WT>;
1257
1124
  };
1258
- rea_ws: {
1259
- ok<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init?: () => PromiseLike<RT>, setter?: ((value: WT, state: OwnerWS$4<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>): StateDelayedREAWS<RT, WT, REL>;
1260
- err<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init?: () => PromiseLike<string>, setter?: ((value: WT, state: OwnerWS$4<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>): StateDelayedREAWS<RT, WT, REL>;
1261
- result<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init?: () => PromiseLike<_chocbite_ts_lib_result.Result<RT, string>>, setter?: ((value: WT, state: OwnerWS$4<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>): StateDelayedREAWS<RT, WT, REL>;
1262
- };
1263
- rea_wa: {
1264
- ok<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init?: () => PromiseLike<RT>, setter?: ((value: WT, state: OwnerWA$4<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateDelayedREAWA<RT, WT, REL>;
1265
- err<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init?: () => PromiseLike<string>, setter?: ((value: WT, state: OwnerWA$4<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateDelayedREAWA<RT, WT, REL>;
1266
- result<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init?: () => PromiseLike<_chocbite_ts_lib_result.Result<RT, string>>, setter?: ((value: WT, state: OwnerWA$4<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateDelayedREAWA<RT, WT, REL>;
1125
+ reaw: {
1126
+ ok<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init?: () => PromiseLike<RT>, setter?: ((value: WT, state: OwnerWrite$4<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateDelayedREAW<RT, WT, REL>;
1127
+ err<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init?: () => PromiseLike<string>, setter?: ((value: WT, state: OwnerWrite$4<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateDelayedREAW<RT, WT, REL>;
1128
+ result<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init?: () => PromiseLike<_chocbite_ts_lib_result.Result<RT, string>>, setter?: ((value: WT, state: OwnerWrite$4<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateDelayedREAW<RT, WT, REL>;
1267
1129
  };
1268
1130
  };
1269
1131
  h: {
@@ -1272,20 +1134,16 @@ declare const state: {
1272
1134
  roa(s: any): s is StateROA<any>;
1273
1135
  res(s: any): s is StateRES<any>;
1274
1136
  ros(s: any): s is StateROS<any>;
1275
- rea_wa(s: any): s is StateREAWA<any>;
1276
- rea_ws(s: any): s is StateREAWS<any>;
1277
- roa_wa(s: any): s is StateROAWA<any>;
1278
- roa_ws(s: any): s is StateROAWS<any>;
1279
- res_wa(s: any): s is StateRESWA<any>;
1280
- res_ws(s: any): s is StateRESWS<any>;
1281
- ros_wa(s: any): s is StateROSWA<any>;
1282
- ros_ws(s: any): s is StateROSWS<any>;
1137
+ reaw(s: any): s is StateREAW<any>;
1138
+ roaw(s: any): s is StateROAW<any>;
1139
+ resw(s: any): s is StateRESW<any>;
1140
+ rosw(s: any): s is StateROSW<any>;
1283
1141
  };
1284
1142
  nums: {
1285
- helper(min?: number, max?: number, unit?: string, decimals?: number, step?: number, start?: number): StateNumberHelper;
1143
+ helper(min?: State<number>, max?: State<number>, unit?: State<string>, decimals?: State<number>, step?: State<number>, start?: State<number>, writable?: State<boolean>): StateNumberHelper;
1286
1144
  };
1287
1145
  strings: {
1288
- helper(max_length?: number, max_length_bytes?: number): StateStringHelper;
1146
+ helper(max_length?: State<number>, max_length_bytes?: State<number>, writable?: State<boolean>): StateStringHelper;
1289
1147
  };
1290
1148
  enums: {
1291
1149
  helper<L extends {
@@ -1294,7 +1152,7 @@ declare const state: {
1294
1152
  description?: string;
1295
1153
  icon?: _chocbite_ts_lib_svg.SVGFunc;
1296
1154
  };
1297
- }, K extends PropertyKey = keyof L, R extends StateRelated = StateEnumRelated<L>>(list: L): StateEnumHelper<L, K, R>;
1155
+ }, K extends PropertyKey = keyof L, R extends StateRelatedBase = StateEnumRelated<L>>(list: State<L>, writable?: State<boolean>): StateEnumHelper<L, K, R>;
1298
1156
  list<K extends PropertyKey>(list: { [P in K]: {
1299
1157
  name: string;
1300
1158
  description?: string;
@@ -1311,8 +1169,8 @@ declare const state: {
1311
1169
  result<RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>, WT = any>(init: () => _chocbite_ts_lib_result.ResultOk<RT>, helper?: StateHelper<WT, REL>): StateLazyROS<RT, REL, WT>;
1312
1170
  };
1313
1171
  ros_ws: {
1314
- ok<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: () => RT, setter?: ((value: WT, state: OwnerWS$5<RT, _chocbite_ts_lib_result.ResultOk<RT>, WT, REL>, old?: _chocbite_ts_lib_result.ResultOk<RT> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>): StateLazyROSWS<RT, WT, REL>;
1315
- result<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: () => _chocbite_ts_lib_result.ResultOk<RT>, setter?: ((value: WT, state: OwnerWS$5<RT, _chocbite_ts_lib_result.ResultOk<RT>, WT, REL>, old?: _chocbite_ts_lib_result.ResultOk<RT> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>): StateLazyROSWS<RT, WT, REL>;
1172
+ ok<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: () => RT, setter?: ((value: WT, state: OwnerWrite$5<RT, _chocbite_ts_lib_result.ResultOk<RT>, WT, REL>, old?: _chocbite_ts_lib_result.ResultOk<RT> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateLazyROSW<RT, WT, REL>;
1173
+ result<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: () => _chocbite_ts_lib_result.ResultOk<RT>, setter?: ((value: WT, state: OwnerWrite$5<RT, _chocbite_ts_lib_result.ResultOk<RT>, WT, REL>, old?: _chocbite_ts_lib_result.ResultOk<RT> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateLazyROSW<RT, WT, REL>;
1316
1174
  };
1317
1175
  res: {
1318
1176
  ok<RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>, WT = any>(init: () => RT, helper?: StateHelper<WT, REL>): StateLazyRES<RT, REL, WT>;
@@ -1320,9 +1178,9 @@ declare const state: {
1320
1178
  result<RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>, WT = any>(init: () => _chocbite_ts_lib_result.Result<RT, string>, helper?: StateHelper<WT, REL>): StateLazyRES<RT, REL, WT>;
1321
1179
  };
1322
1180
  res_ws: {
1323
- ok<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: () => RT, setter?: ((value: WT, state: OwnerWS$5<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>): StateLazyRESWS<RT, WT, REL>;
1324
- err<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: () => string, setter?: ((value: WT, state: OwnerWS$5<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>): StateLazyRESWS<RT, WT, REL>;
1325
- result<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: () => _chocbite_ts_lib_result.Result<RT, string>, setter?: ((value: WT, state: OwnerWS$5<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>): StateLazyRESWS<RT, WT, REL>;
1181
+ ok<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: () => RT, setter?: ((value: WT, state: OwnerWrite$5<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateLazyRESW<RT, WT, REL>;
1182
+ err<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: () => string, setter?: ((value: WT, state: OwnerWrite$5<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateLazyRESW<RT, WT, REL>;
1183
+ result<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: () => _chocbite_ts_lib_result.Result<RT, string>, setter?: ((value: WT, state: OwnerWrite$5<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateLazyRESW<RT, WT, REL>;
1326
1184
  };
1327
1185
  };
1328
1186
  p: {
@@ -1330,49 +1188,57 @@ declare const state: {
1330
1188
  <S extends StateROS<RIN, any, WIN>, RIN = S extends State<infer RT> ? RT : never, ROUT = RIN, WIN = S extends State<any, infer RT_1> ? RT_1 : any, WOUT = WIN>(state: StateROS<RIN, any, WIN>, transform?: (value: _chocbite_ts_lib_result.ResultOk<RIN>) => _chocbite_ts_lib_result.ResultOk<ROUT>): StateProxyROS<S, RIN, ROUT, WIN, WOUT>;
1331
1189
  <S extends StateRES<RIN, any, WIN>, RIN = S extends State<infer RT> ? RT : never, ROUT = RIN, WIN = S extends State<any, infer RT_1> ? RT_1 : any, WOUT = WIN>(state: StateRES<RIN, any, WIN>, transform: (value: _chocbite_ts_lib_result.Result<RIN, string>) => _chocbite_ts_lib_result.ResultOk<ROUT>): StateProxyROS<S, RIN, ROUT, WIN, WOUT>;
1332
1190
  };
1333
- ros_ws: {
1334
- <S extends StateROSWS<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateROSWS<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.ResultOk<RIN>) => _chocbite_ts_lib_result.ResultOk<ROUT>, transform_write?: (value: WOUT) => WIN): StateProxyROSWS<S, RIN, WIN, ROUT, WOUT>;
1335
- <S extends StateRESWS<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateRESWS<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.Result<RIN, string>) => _chocbite_ts_lib_result.ResultOk<ROUT>, transform_write?: (value: WOUT) => WIN): StateProxyROSWS<S, RIN, WIN, ROUT, WOUT>;
1336
- };
1337
- ros_wa: {
1338
- <S extends StateROSWA<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateROSWA<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.ResultOk<RIN>) => _chocbite_ts_lib_result.ResultOk<ROUT>, transform_write?: (value: WOUT) => WIN): StateProxyROSWA<S, RIN, WIN, ROUT, WOUT>;
1339
- <S extends StateRESWA<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateRESWA<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.Result<RIN, string>) => _chocbite_ts_lib_result.ResultOk<ROUT>, transform_write?: (value: WOUT) => WIN): StateProxyROSWA<S, RIN, WIN, ROUT, WOUT>;
1191
+ rosw: {
1192
+ <S extends StateROSW<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateROSW<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.ResultOk<RIN>) => _chocbite_ts_lib_result.ResultOk<ROUT>, transform_write?: {
1193
+ wout_win: (val: WOUT) => WIN;
1194
+ win_wout: (val: WIN) => WOUT;
1195
+ }): StateProxyROSW<S, RIN, WIN, ROUT, WOUT>;
1196
+ <S extends StateRESW<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateRESW<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.Result<RIN, string>) => _chocbite_ts_lib_result.ResultOk<ROUT>, transform_write?: {
1197
+ wout_win: (val: WOUT) => WIN;
1198
+ win_wout: (val: WIN) => WOUT;
1199
+ }): StateProxyROSW<S, RIN, WIN, ROUT, WOUT>;
1340
1200
  };
1341
1201
  roa: {
1342
1202
  <S extends StateROA<RIN, any, WIN>, RIN = S extends State<infer RT> ? RT : never, ROUT = RIN, WIN = S extends State<any, infer RT_1> ? RT_1 : any, WOUT = WIN>(state: StateROA<RIN, any, WIN>, transform?: (value: _chocbite_ts_lib_result.ResultOk<RIN>) => _chocbite_ts_lib_result.ResultOk<ROUT>): StateProxyROA<S, RIN, ROUT, WIN, WOUT>;
1343
1203
  <S extends StateREA<RIN, any, WIN>, RIN = S extends State<infer RT> ? RT : never, ROUT = RIN, WIN = S extends State<any, infer RT_1> ? RT_1 : any, WOUT = WIN>(state: StateREA<RIN, any, WIN>, transform: (value: _chocbite_ts_lib_result.Result<RIN, string>) => _chocbite_ts_lib_result.ResultOk<ROUT>): StateProxyROA<S, RIN, ROUT, WIN, WOUT>;
1344
1204
  };
1345
- roa_ws: {
1346
- <S extends StateROAWS<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateROAWS<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.ResultOk<RIN>) => _chocbite_ts_lib_result.ResultOk<ROUT>, transform_write?: (value: WOUT) => WIN): StateProxyROAWS<S, RIN, WIN, ROUT, WOUT>;
1347
- <S extends StateREAWS<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateREAWS<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.Result<RIN, string>) => _chocbite_ts_lib_result.ResultOk<ROUT>, transform_write?: (value: WOUT) => WIN): StateProxyROAWS<S, RIN, WIN, ROUT, WOUT>;
1348
- };
1349
- roa_wa: {
1350
- <S extends StateROAWA<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateROAWA<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.ResultOk<RIN>) => _chocbite_ts_lib_result.ResultOk<ROUT>, transform_write?: (value: WOUT) => WIN): StateProxyROAWA<S, RIN, WIN, ROUT, WOUT>;
1351
- <S extends StateREAWA<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateREAWA<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.Result<RIN, string>) => _chocbite_ts_lib_result.ResultOk<ROUT>, transform_write?: (value: WOUT) => WIN): StateProxyROAWA<S, RIN, WIN, ROUT, WOUT>;
1205
+ roaw: {
1206
+ <S extends StateROAW<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateROAW<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.ResultOk<RIN>) => _chocbite_ts_lib_result.ResultOk<ROUT>, transform_write?: {
1207
+ wout_win: (val: WOUT) => WIN;
1208
+ win_wout: (val: WIN) => WOUT;
1209
+ }): StateProxyROAW<S, RIN, WIN, ROUT, WOUT>;
1210
+ <S extends StateREAW<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateREAW<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.Result<RIN, string>) => _chocbite_ts_lib_result.ResultOk<ROUT>, transform_write?: {
1211
+ wout_win: (val: WOUT) => WIN;
1212
+ win_wout: (val: WIN) => WOUT;
1213
+ }): StateProxyROAW<S, RIN, WIN, ROUT, WOUT>;
1352
1214
  };
1353
1215
  res: {
1354
1216
  <S extends StateROS<RIN, any, WIN>, RIN = S extends State<infer RT> ? RT : never, ROUT = RIN, WIN = S extends State<any, infer WT> ? WT : any, WOUT = WIN>(state: StateROS<RIN, any, WIN>, transform?: (value: _chocbite_ts_lib_result.ResultOk<RIN>) => _chocbite_ts_lib_result.Result<ROUT, string>): StateProxyRES<S, RIN, ROUT, WIN, WOUT>;
1355
1217
  <S extends StateRES<RIN, any, WIN>, RIN = S extends State<infer RT> ? RT : never, ROUT = RIN, WIN = S extends State<any, infer RT_1> ? RT_1 : any, WOUT = WIN>(state: StateRES<RIN, any, WIN>, transform?: (value: _chocbite_ts_lib_result.Result<RIN, string>) => _chocbite_ts_lib_result.Result<ROUT, string>): StateProxyRES<S, RIN, ROUT, WIN, WOUT>;
1356
1218
  };
1357
- res_ws: {
1358
- <S extends StateROSWS<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateROSWS<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.ResultOk<RIN>) => _chocbite_ts_lib_result.Result<ROUT, string>, transform_write?: (value: WOUT) => WIN): StateProxyRESWS<S, RIN, WIN, ROUT, WOUT>;
1359
- <S extends StateRESWS<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateRESWS<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.Result<RIN, string>) => _chocbite_ts_lib_result.Result<ROUT, string>, transform_write?: (value: WOUT) => WIN): StateProxyRESWS<S, RIN, WIN, ROUT, WOUT>;
1360
- };
1361
- res_wa: {
1362
- <S extends StateROSWA<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateROSWA<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.ResultOk<RIN>) => _chocbite_ts_lib_result.Result<ROUT, string>, transform_write?: (value: WOUT) => WIN): StateProxyRESWA<S, RIN, WIN, ROUT, WOUT>;
1363
- <S extends StateRESWA<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateRESWA<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.Result<RIN, string>) => _chocbite_ts_lib_result.Result<ROUT, string>, transform_write?: (value: WOUT) => WIN): StateProxyRESWA<S, RIN, WIN, ROUT, WOUT>;
1219
+ resw: {
1220
+ <S extends StateROSW<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateROSW<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.ResultOk<RIN>) => _chocbite_ts_lib_result.Result<ROUT, string>, transform_write?: {
1221
+ wout_win: (val: WOUT) => WIN;
1222
+ win_wout: (val: WIN) => WOUT;
1223
+ }): StateProxyRESW<S, RIN, WIN, ROUT, WOUT>;
1224
+ <S extends StateRESW<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateRESW<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.Result<RIN, string>) => _chocbite_ts_lib_result.Result<ROUT, string>, transform_write?: {
1225
+ wout_win: (val: WOUT) => WIN;
1226
+ win_wout: (val: WIN) => WOUT;
1227
+ }): StateProxyRESW<S, RIN, WIN, ROUT, WOUT>;
1364
1228
  };
1365
1229
  rea: {
1366
1230
  <S extends StateROA<RIN, any, WIN>, RIN = S extends State<infer RT> ? RT : never, ROUT = RIN, WIN = S extends State<any, infer RT_1> ? RT_1 : any, WOUT = WIN>(state: StateROA<RIN, any, WIN>, transform?: (value: _chocbite_ts_lib_result.ResultOk<RIN>) => _chocbite_ts_lib_result.Result<ROUT, string>): StateProxyREA<S, RIN, ROUT, WIN, WOUT>;
1367
1231
  <S extends StateREA<RIN, any, WIN>, RIN = S extends State<infer RT> ? RT : never, ROUT = RIN, WIN = S extends State<any, infer RT_1> ? RT_1 : any, WOUT = WIN>(state: StateREA<RIN, any, WIN>, transform?: (value: _chocbite_ts_lib_result.Result<RIN, string>) => _chocbite_ts_lib_result.Result<ROUT, string>): StateProxyREA<S, RIN, ROUT, WIN, WOUT>;
1368
1232
  };
1369
- rea_ws: {
1370
- <S extends StateROAWS<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateROAWS<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.ResultOk<RIN>) => _chocbite_ts_lib_result.Result<ROUT, string>, transform_write?: (value: WOUT) => WIN): StateProxyREAWS<S, RIN, WIN, ROUT, WOUT>;
1371
- <S extends StateREAWS<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateREAWS<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.Result<RIN, string>) => _chocbite_ts_lib_result.Result<ROUT, string>, transform_write?: (value: WOUT) => WIN): StateProxyREAWS<S, RIN, WIN, ROUT, WOUT>;
1372
- };
1373
- rea_wa: {
1374
- <S extends StateROAWA<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateROAWA<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.ResultOk<RIN>) => _chocbite_ts_lib_result.Result<ROUT, string>, transform_write?: (value: WOUT) => WIN): StateProxyREAWA<S, RIN, WIN, ROUT, WOUT>;
1375
- <S extends StateREAWA<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateREAWA<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.Result<RIN, string>) => _chocbite_ts_lib_result.Result<ROUT, string>, transform_write?: (value: WOUT) => WIN): StateProxyREAWA<S, RIN, WIN, ROUT, WOUT>;
1233
+ reaw: {
1234
+ <S extends StateROAW<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateROAW<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.ResultOk<RIN>) => _chocbite_ts_lib_result.Result<ROUT, string>, transform_write?: {
1235
+ wout_win: (val: WOUT) => WIN;
1236
+ win_wout: (val: WIN) => WOUT;
1237
+ }): StateProxyREAW<S, RIN, WIN, ROUT, WOUT>;
1238
+ <S extends StateREAW<RIN, WIN>, RIN, WIN, ROUT = RIN, WOUT = WIN>(state: StateREAW<RIN, WIN>, transform_read?: (value: _chocbite_ts_lib_result.Result<RIN, string>) => _chocbite_ts_lib_result.Result<ROUT, string>, transform_write?: {
1239
+ wout_win: (val: WOUT) => WIN;
1240
+ win_wout: (val: WIN) => WOUT;
1241
+ }): StateProxyREAW<S, RIN, WIN, ROUT, WOUT>;
1376
1242
  };
1377
1243
  };
1378
1244
  r: {
@@ -1395,7 +1261,7 @@ declare const state: {
1395
1261
  class: typeof StateResourceREA;
1396
1262
  };
1397
1263
  rea_wa: {
1398
- from<RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>, WT = RT>(once: (state: OwnerWA$5<RT, WT, REL>) => void, setup: (state: OwnerWA$5<RT, WT, REL>) => void, teardown: () => void, write_action?: (value: WT, state: OwnerWA$5<RT, WT, REL>) => Promise<_chocbite_ts_lib_result.Result<void, string>>, times?: {
1264
+ from<RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>, WT = RT>(once: (state: OwnerWA<RT, WT, REL>) => void, setup: (state: OwnerWA<RT, WT, REL>) => void, teardown: () => void, write_action?: (value: WT, state: OwnerWA<RT, WT, REL>) => Promise<_chocbite_ts_lib_result.Result<void, string>>, times?: {
1399
1265
  timeout?: number;
1400
1266
  debounce?: number;
1401
1267
  validity?: number | true;
@@ -1411,8 +1277,8 @@ declare const state: {
1411
1277
  result<RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>, WT = any>(init: _chocbite_ts_lib_result.ResultOk<RT>, helper?: StateHelper<WT, REL>): StateSyncROS<RT, REL, WT>;
1412
1278
  };
1413
1279
  ros_ws: {
1414
- ok<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(this: void, init: RT, setter?: ((value: WT, state: OwnerWS$6<RT, _chocbite_ts_lib_result.ResultOk<RT>, WT, REL>, old?: _chocbite_ts_lib_result.ResultOk<RT> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>): StateSyncROSWS<RT, WT, REL>;
1415
- result<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: _chocbite_ts_lib_result.ResultOk<RT>, setter?: ((value: WT, state: OwnerWS$6<RT, _chocbite_ts_lib_result.ResultOk<RT>, WT, REL>, old?: _chocbite_ts_lib_result.ResultOk<RT> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>): StateSyncROSWS<RT, WT, REL>;
1280
+ ok<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(this: void, init: RT, setter?: ((value: WT, state: OwnerWrite$6<RT, _chocbite_ts_lib_result.ResultOk<RT>, WT, REL>, old?: _chocbite_ts_lib_result.ResultOk<RT> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateSyncROSW<RT, WT, REL>;
1281
+ result<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: _chocbite_ts_lib_result.ResultOk<RT>, setter?: ((value: WT, state: OwnerWrite$6<RT, _chocbite_ts_lib_result.ResultOk<RT>, WT, REL>, old?: _chocbite_ts_lib_result.ResultOk<RT> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateSyncROSW<RT, WT, REL>;
1416
1282
  };
1417
1283
  res: {
1418
1284
  ok<RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>, WT = any>(this: void, init: RT, helper?: StateHelper<WT, REL>): StateSyncRES<RT, REL, WT>;
@@ -1420,9 +1286,9 @@ declare const state: {
1420
1286
  result<RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>, WT = any>(init: _chocbite_ts_lib_result.Result<RT, string>, helper?: StateHelper<WT, REL>): StateSyncRES<RT, REL, WT>;
1421
1287
  };
1422
1288
  res_ws: {
1423
- ok<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(this: void, init: RT, setter?: ((value: WT, state: OwnerWS$6<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>): StateSyncRESWS<RT, WT, REL>;
1424
- err<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(this: void, init: string, setter?: ((value: WT, state: OwnerWS$6<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>): StateSyncRESWS<RT, WT, REL>;
1425
- result<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: _chocbite_ts_lib_result.Result<RT, string>, setter?: ((value: WT, state: OwnerWS$6<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>): StateSyncRESWS<RT, WT, REL>;
1289
+ ok<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(this: void, init: RT, setter?: ((value: WT, state: OwnerWrite$6<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateSyncRESW<RT, WT, REL>;
1290
+ err<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(this: void, init: string, setter?: ((value: WT, state: OwnerWrite$6<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateSyncRESW<RT, WT, REL>;
1291
+ result<RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(init: _chocbite_ts_lib_result.Result<RT, string>, setter?: ((value: WT, state: OwnerWrite$6<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>): StateSyncRESW<RT, WT, REL>;
1426
1292
  };
1427
1293
  };
1428
1294
  /**Returns true if the given object promises to be a state */
@@ -1432,9 +1298,9 @@ declare const state: {
1432
1298
  ok: <RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>, WT = any>(this: void, init: RT, helper?: StateHelper<WT, REL>) => StateSyncROS<RT, REL, WT>;
1433
1299
  err: <RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>, WT = any>(this: void, init: string, helper?: StateHelper<WT, REL>) => StateSyncRES<RT, REL, WT>;
1434
1300
  from: <RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>, WT = any>(this: void, init: RT, helper?: StateHelper<WT, REL>) => StateSyncRES<RT, REL, WT>;
1435
- ok_ws: <RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(this: void, init: RT, setter?: ((value: WT, state: OwnerWS$6<RT, _chocbite_ts_lib_result.ResultOk<RT>, WT, REL>, old?: _chocbite_ts_lib_result.ResultOk<RT> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>) => StateSyncROSWS<RT, WT, REL>;
1436
- err_ws: <RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(this: void, init: string, setter?: ((value: WT, state: OwnerWS$6<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>) => StateSyncRESWS<RT, WT, REL>;
1437
- from_ws: <RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(this: void, init: RT, setter?: ((value: WT, state: OwnerWS$6<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => _chocbite_ts_lib_result.Result<void, string>) | true, helper?: StateHelper<WT, REL>) => StateSyncRESWS<RT, WT, REL>;
1301
+ ok_ws: <RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(this: void, init: RT, setter?: ((value: WT, state: OwnerWrite$6<RT, _chocbite_ts_lib_result.ResultOk<RT>, WT, REL>, old?: _chocbite_ts_lib_result.ResultOk<RT> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>) => StateSyncROSW<RT, WT, REL>;
1302
+ err_ws: <RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(this: void, init: string, setter?: ((value: WT, state: OwnerWrite$6<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>) => StateSyncRESW<RT, WT, REL>;
1303
+ from_ws: <RT, WT = RT, REL extends _chocbite_ts_lib_result.Option<StateRelated> = _chocbite_ts_lib_result.Option<{}>>(this: void, init: RT, setter?: ((value: WT, state: OwnerWrite$6<RT, _chocbite_ts_lib_result.Result<RT, string>, WT, REL>, old?: _chocbite_ts_lib_result.Result<RT, string> | undefined) => Promise<_chocbite_ts_lib_result.Result<void, string>>) | true, helper?: StateHelper<WT, REL>) => StateSyncRESW<RT, WT, REL>;
1438
1304
  };
1439
1305
 
1440
- export { type State, type StateArray, type StateArrayREA, type StateArrayREAWA, type StateArrayREAWS, type StateArrayRES, type StateArrayRESWA, type StateArrayRESWS, type StateArrayROA, type StateArrayROAWA, type StateArrayROAWS, type StateArrayROS, type StateArrayROSWA, type StateArrayROSWS, type StateArrayRead, StateArrayReadType, type StateArraySyncRES, type StateArraySyncRESWS, type StateArraySyncROS, type StateArraySyncROSWS, type StateArrayWrite, type StateCollectedREA, type StateCollectedRES, type StateCollectedROA, type StateCollectedROS, type StateDelayedREA, type StateDelayedREAWA, type StateDelayedREAWS, type StateDelayedROA, type StateDelayedROAWA, type StateDelayedROAWS, StateEnumHelper, type StateEnumRelated, type StateInferResult, type StateInferSub, type StateInferType, type StateLazyRES, type StateLazyRESWS, type StateLazyROS, type StateLazyROSWS, StateNumberHelper, type StateNumberRelated, type StateProxyREA, type StateProxyREAWA, type StateProxyREAWS, type StateProxyRES, type StateProxyRESWA, type StateProxyRESWS, type StateProxyROA, type StateProxyROAWA, type StateProxyROAWS, type StateProxyROS, type StateProxyROSWA, type StateProxyROSWS, type StateREA, type StateREAWA, type StateREAWS, type StateRES, type StateRESWA, type StateRESWS, type StateROA, type StateROAWA, type StateROAWS, type StateROS, type StateROSWA, type StateROSWS, type StateResourceFuncREA, type StateResourceFuncREAWA, type StateResourceFuncROA, StateResourceREA, StateResourceREAWA, StateResourceROA, StateStringHelper, type StateStringRelated, type StateSub, type StateSyncRES, type StateSyncRESWS, type StateSyncROS, type StateSyncROSWS, state as default, state };
1306
+ export { type State, type StateArray, type StateArrayREA, type StateArrayREAW, type StateArrayRES, type StateArrayRESW, type StateArrayROA, type StateArrayROAW, type StateArrayROS, type StateArrayROSW, type StateArrayRead, StateArrayReadType, type StateArraySyncRES, type StateArraySyncRESWS, type StateArraySyncROS, type StateArraySyncROSWS, type StateArrayWrite, type StateCollectedREA, type StateCollectedRES, type StateCollectedROA, type StateCollectedROS, type StateDelayedREA, type StateDelayedREAW, type StateDelayedROA, type StateDelayedROAW, StateEnumHelper, type StateEnumRelated, type StateInferResult, type StateInferSub, type StateInferType, type StateLazyRES, type StateLazyRESW as StateLazyRESWS, type StateLazyROS, type StateLazyROSW as StateLazyROSWS, StateNumberHelper, type StateNumberRelated, type StateProxyREA, type StateProxyREAW as StateProxyREAWA, type StateProxyRES, type StateProxyRESW as StateProxyRESWA, type StateProxyROA, type StateProxyROAW as StateProxyROAWA, type StateProxyROS, type StateProxyROSW as StateProxyROSWA, type StateREA, type StateREAW, type StateRES, type StateRESW, type StateROA, type StateROAW, type StateROS, type StateROSW, type StateResourceFuncREA, type StateResourceFuncREAWA, type StateResourceFuncROA, StateResourceREA, StateResourceREAWA, StateResourceROA, StateStringHelper, type StateStringRelated, type StateSub, type StateSyncRES, type StateSyncRESW as StateSyncRESWS, type StateSyncROS, type StateSyncROSW as StateSyncROSWS, state as default, state };