@chocbite/ts-lib-state 1.0.3 → 1.1.1

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 -366
  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
160
  }
177
- interface REAWA<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>> {
178
162
  readonly rsync: false;
179
163
  readonly rok: false;
180
164
  readonly writable: true;
181
- readonly wsync: false;
182
165
  write(value: WT): Promise<Result<void, string>>;
183
- limit(value: WT): Result<WT, string>;
184
- check(value: WT): Result<WT, string>;
166
+ limit(value: WT): Promise<Result<WT, string>>;
167
+ check(value: WT): Promise<Result<WT, string>>;
185
168
  }
186
- interface REAWS<RT, WT, REL extends Option<StateRelated>> extends StateBase$1<RT, WT, REL, ResultOk<RT>> {
187
- readonly rsync: false;
188
- readonly rok: false;
189
- readonly writable: true;
190
- readonly wsync: true;
191
- 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>;
195
- }
196
- interface ROAWA<RT, WT, REL extends Option<StateRelated>> extends StateBase$1<RT, WT, REL, ResultOk<RT>> {
197
- readonly rsync: false;
198
- readonly rok: true;
199
- readonly writable: true;
200
- readonly wsync: false;
201
- write(value: WT): Promise<Result<void, string>>;
202
- limit(value: WT): Result<WT, string>;
203
- check(value: WT): Result<WT, string>;
204
- }
205
- interface ROAWS<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>> {
206
170
  readonly rsync: false;
207
171
  readonly rok: true;
208
172
  readonly writable: true;
209
- readonly wsync: true;
210
173
  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>;
174
+ limit(value: WT): Promise<Result<WT, string>>;
175
+ check(value: WT): Promise<Result<WT, string>>;
214
176
  }
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: State<L>;
267
+ map<K extends keyof L, R>(func: (key: K, val: EnumHelperEntry) => R): Promise<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>> implements StateEnumRelated<L> {
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,135 +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
- step?: number;
566
- start?: number;
567
- }
568
- declare class StateNumberHelper implements StateNumberRelated, StateHelper<number, OptionSome<StateNumberRelated>> {
569
- min: number | undefined;
570
- max: number | undefined;
571
- unit: string | undefined;
572
- decimals: number | undefined;
573
- step: number | undefined;
574
- start: number | undefined;
575
- constructor(min?: number, max?: number, unit?: string, decimals?: number, step?: number, start?: number);
576
- limit(value: number): Result<number, string>;
577
- check(value: number): Result<number, string>;
578
- related(): OptionSome<StateNumberRelated>;
579
- }
580
- interface StateStringRelated extends StateRelated {
581
- max_length?: number;
582
- max_length_bytes?: number;
583
- }
584
- declare class StateStringHelper implements StateStringRelated, StateHelper<string, OptionSome<StateStringRelated>> {
585
- max_length: number | undefined;
586
- max_length_bytes: number | undefined;
587
- constructor(max_length?: number, max_length_bytes?: number);
588
- limit(value: string): Result<string, string>;
589
- check(value: string): Result<string, string>;
590
- related(): OptionSome<StateStringRelated>;
591
- }
592
- type EnumHelperEntry = {
593
- name: string;
594
- description?: string;
595
- icon?: SVGFunc;
596
- };
597
- type StateEnumHelperList<K extends PropertyKey> = {
598
- [P in K]: EnumHelperEntry;
599
- };
600
- interface StateEnumRelated<L extends StateEnumHelperList<any>> extends StateRelated {
601
- list: L;
602
- map<K extends keyof L, R>(func: (key: K, val: EnumHelperEntry) => R): R[];
603
- }
604
- declare class StateEnumHelper<L extends StateEnumHelperList<any>, K extends PropertyKey = keyof L, R extends StateRelated = StateEnumRelated<L>> implements StateHelper<K, OptionSome<R>>, StateEnumRelated<L> {
605
- list: L;
606
- constructor(list: L);
607
- map<K extends keyof L, R>(func: (key: K, val: EnumHelperEntry) => R): R[];
608
- limit(value: K): Result<K, string>;
609
- check(value: K): Result<K, string>;
610
- related(): OptionSome<R>;
611
- }
612
-
613
- 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>;
614
- 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>>;
615
551
  interface Owner$8<RT, RRT extends Result<RT, string>, WT, REL extends Option<StateRelated>> {
616
552
  set(value: RRT): void;
617
553
  set_ok(value: RT): void;
618
- setter_sync?: DelayedSetterWS<RT, RRT, REL, WT>;
619
- setter_async?: DelayedSetterWA<RT, RRT, REL, WT>;
554
+ setter?: DelayedSetter<RT, RRT, REL, WT>;
620
555
  readonly state: State<RT, WT, REL>;
621
556
  }
622
- interface OwnerWS$4<RT, RRT extends Result<RT, string>, WT, REL extends Option<StateRelated>> extends Owner$8<RT, RRT, WT, REL> {
623
- setter_sync: DelayedSetterWS<RT, RRT, REL, WT>;
624
- }
625
- interface OwnerWA$4<RT, RRT extends Result<RT, string>, WT, REL extends Option<StateRelated>> extends Owner$8<RT, RRT, WT, REL> {
626
- 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>;
627
559
  }
628
560
  type StateDelayedROA<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = StateROA<RT, REL, WT> & Owner$8<RT, ResultOk<RT>, WT, REL> & {
629
561
  readonly read_only: StateROA<RT, REL, WT>;
630
- readonly read_write_sync?: StateROAWS<RT, WT, REL>;
631
- readonly read_write_async?: StateROAWA<RT, WT, REL>;
632
- };
633
- type StateDelayedROAWS<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateROAWS<RT, WT, REL> & OwnerWS$4<RT, ResultOk<RT>, WT, REL> & {
634
- readonly read_only: StateROA<RT, REL, WT>;
635
- readonly read_write_sync: StateROAWS<RT, WT, REL>;
636
- readonly read_write_async?: StateROAWA<RT, WT, REL>;
562
+ readonly read_write?: StateROAW<RT, WT, REL>;
637
563
  };
638
- 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> & {
639
565
  readonly read_only: StateROA<RT, REL, WT>;
640
- readonly read_write_sync?: StateROAWS<RT, WT, REL>;
641
- readonly read_write_async: StateROAWA<RT, WT, REL>;
566
+ readonly read_write: StateROAW<RT, WT, REL>;
642
567
  };
643
568
  type StateDelayedREA<RT, REL extends Option<StateRelated> = Option<{}>, WT = any> = StateREA<RT, REL, WT> & Owner$8<RT, Result<RT, string>, WT, REL> & {
644
569
  set_err(error: string): void;
645
570
  readonly read_only: StateREA<RT, REL, WT>;
646
- readonly read_write_sync?: StateREAWS<RT, WT, REL>;
647
- readonly read_write_async?: StateREAWA<RT, WT, REL>;
648
- };
649
- type StateDelayedREAWS<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateREAWS<RT, WT, REL> & OwnerWS$4<RT, Result<RT, string>, WT, REL> & {
650
- set_err(error: string): void;
651
- readonly read_only: StateREA<RT, REL, WT>;
652
- readonly read_write_sync: StateREAWS<RT, WT, REL>;
653
- readonly read_write_async?: StateREAWA<RT, WT, REL>;
571
+ readonly read_write?: StateREAW<RT, WT, REL>;
654
572
  };
655
- type StateDelayedREAWA<RT, WT = RT, REL extends Option<StateRelated> = Option<{}>> = StateREAWA<RT, WT, REL> & OwnerWA$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> & {
656
574
  set_err(error: string): void;
657
575
  readonly read_only: StateREA<RT, REL, WT>;
658
- readonly read_write_sync?: StateREAWS<RT, WT, REL>;
659
- readonly read_write_async: StateREAWA<RT, WT, REL>;
576
+ readonly read_write: StateREAW<RT, WT, REL>;
660
577
  };
661
578
 
662
579
  type StateCollectedTransVal<IN extends State<any>[]> = {
@@ -809,35 +726,23 @@ interface Owner$3<S, RIN, ROUT, WIN, WOUT> {
809
726
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
810
727
  set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
811
728
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
812
- set_transform_write(transform: (val: WOUT) => WIN): void;
729
+ set_transform_write(wout_win: (val: WOUT) => WIN, win_wout: (val: WIN) => WOUT): void;
813
730
  get state(): State<ROUT, WOUT, OptionNone>;
814
731
  get read_only(): StateREA<ROUT, OptionNone, WOUT>;
815
732
  }
816
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>;
817
- 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> {
818
- /**Sets the state that is being proxied, and updates subscribers with new value*/
819
- set_state(state: S): void;
820
- /**Changes the transform function of the proxy, and updates subscribers with new value*/
821
- set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
822
- /**Changes the transform function of the proxy, and updates subscribers with new value*/
823
- set_transform_write(transform: (val: WOUT) => WIN): void;
824
- get state(): State<ROUT, WOUT, OptionNone>;
825
- get read_only(): StateREA<ROUT, OptionNone, WOUT>;
826
- get read_write(): StateREAWS<ROUT, WOUT, OptionNone>;
827
- }
828
- 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>;
829
- 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> {
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> {
830
735
  /**Sets the state that is being proxied, and updates subscribers with new value*/
831
736
  set_state(state: S): void;
832
737
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
833
738
  set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
834
739
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
835
- set_transform_write(transform: (val: WOUT) => WIN): void;
740
+ set_transform_write(wout_win: (val: WOUT) => WIN, win_wout: (val: WIN) => WOUT): void;
836
741
  get state(): State<ROUT, WOUT, OptionNone>;
837
742
  get read_only(): StateREA<ROUT, OptionNone, WOUT>;
838
- get read_write(): StateREAWA<ROUT, WOUT, OptionNone>;
743
+ get read_write(): StateREAW<ROUT, WOUT, OptionNone>;
839
744
  }
840
- 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>;
841
746
 
842
747
  interface Owner$2<S, RIN, ROUT, WIN, WOUT> {
843
748
  /**Sets the state that is being proxied, and updates subscribers with new value*/
@@ -845,35 +750,23 @@ interface Owner$2<S, RIN, ROUT, WIN, WOUT> {
845
750
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
846
751
  set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
847
752
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
848
- set_transform_write(transform: (val: WOUT) => WIN): void;
753
+ set_transform_write(wout_win: (val: WOUT) => WIN, win_wout: (val: WIN) => WOUT): void;
849
754
  get state(): State<ROUT, WOUT, OptionNone>;
850
755
  get read_only(): StateRES<ROUT, OptionNone, WOUT>;
851
756
  }
852
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>;
853
- 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> {
854
- /**Sets the state that is being proxied, and updates subscribers with new value*/
855
- set_state(state: S): void;
856
- /**Changes the transform function of the proxy, and updates subscribers with new value*/
857
- set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
858
- /**Changes the transform function of the proxy, and updates subscribers with new value*/
859
- set_transform_write(transform: (val: WOUT) => WIN): void;
860
- get state(): State<ROUT, WOUT, OptionNone>;
861
- get read_only(): StateRES<ROUT, OptionNone, WOUT>;
862
- get read_write(): StateRESWS<ROUT, WOUT, OptionNone>;
863
- }
864
- 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>;
865
- 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> {
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> {
866
759
  /**Sets the state that is being proxied, and updates subscribers with new value*/
867
760
  set_state(state: S): void;
868
761
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
869
762
  set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
870
763
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
871
- set_transform_write(transform: (val: WOUT) => WIN): void;
764
+ set_transform_write(wout_win: (val: WOUT) => WIN, win_wout: (val: WIN) => WOUT): void;
872
765
  get state(): State<ROUT, WOUT, OptionNone>;
873
766
  get read_only(): StateRES<ROUT, OptionNone, WOUT>;
874
- get read_write(): StateRESWA<ROUT, WOUT, OptionNone>;
767
+ get read_write(): StateRESW<ROUT, WOUT, OptionNone>;
875
768
  }
876
- 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>;
877
770
 
878
771
  interface Owner$1<S extends State<any, any>, RIN, ROUT, WIN, WOUT> {
879
772
  /**Sets the state that is being proxied, and updates subscribers with new value*/
@@ -881,36 +774,24 @@ interface Owner$1<S extends State<any, any>, RIN, ROUT, WIN, WOUT> {
881
774
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
882
775
  set_transform_read(transform: ROATransform<S, RIN, ROUT>): void;
883
776
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
884
- set_transform_write(transform: (val: WOUT) => WIN): void;
777
+ set_transform_write(wout_win: (val: WOUT) => WIN, win_wout: (val: WIN) => WOUT): void;
885
778
  get state(): State<ROUT, WOUT, OptionNone>;
886
779
  get read_only(): StateROA<ROUT, OptionNone, WOUT>;
887
780
  }
888
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>;
889
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>;
890
- 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> {
891
- /**Sets the state that is being proxied, and updates subscribers with new value*/
892
- set_state(state: S): void;
893
- /**Changes the transform function of the proxy, and updates subscribers with new value*/
894
- set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
895
- /**Changes the transform function of the proxy, and updates subscribers with new value*/
896
- set_transform_write(transform: (val: WOUT) => WIN): void;
897
- get state(): State<ROUT, WOUT, OptionNone>;
898
- get read_only(): StateROA<ROUT, OptionNone, WOUT>;
899
- get read_write(): StateROAWS<ROUT, WOUT, OptionNone>;
900
- }
901
- 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>;
902
- 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> {
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> {
903
784
  /**Sets the state that is being proxied, and updates subscribers with new value*/
904
785
  set_state(state: S): void;
905
786
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
906
787
  set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
907
788
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
908
- set_transform_write(transform: (val: WOUT) => WIN): void;
789
+ set_transform_write(wout_win: (val: WOUT) => WIN, win_wout: (val: WIN) => WOUT): void;
909
790
  get state(): State<ROUT, WOUT, OptionNone>;
910
791
  get read_only(): StateROA<ROUT, OptionNone, WOUT>;
911
- get read_write(): StateROAWA<ROUT, WOUT, OptionNone>;
792
+ get read_write(): StateROAW<ROUT, WOUT, OptionNone>;
912
793
  }
913
- 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>;
914
795
 
915
796
  interface Owner<S extends State<any, any>, RIN, ROUT, WIN, WOUT> {
916
797
  /**Sets the state that is being proxied, and updates subscribers with new value*/
@@ -918,36 +799,24 @@ interface Owner<S extends State<any, any>, RIN, ROUT, WIN, WOUT> {
918
799
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
919
800
  set_transform_read(transform: ROSTransform<S, RIN, ROUT>): void;
920
801
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
921
- set_transform_write(transform: (val: WOUT) => WIN): void;
802
+ set_transform_write(wout_win: (val: WOUT) => WIN, win_wout: (val: WIN) => WOUT): void;
922
803
  get state(): State<ROUT, WOUT, OptionNone>;
923
804
  get read_only(): StateROS<ROUT, OptionNone, WOUT>;
924
805
  }
925
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>;
926
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>;
927
- interface OwnerWS<S, RIN = S extends State<infer RT> ? RT : never, WIN = S extends State<any, infer WT> ? WT : never, ROUT = RIN, WOUT = WIN> {
928
- /**Sets the state that is being proxied, and updates subscribers with new value*/
929
- set_state(state: S): void;
930
- /**Changes the transform function of the proxy, and updates subscribers with new value*/
931
- set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
932
- /**Changes the transform function of the proxy, and updates subscribers with new value*/
933
- set_transform_write(transform: (val: WOUT) => WIN): void;
934
- get state(): State<ROUT, WOUT, OptionNone>;
935
- get read_only(): StateROS<ROUT, OptionNone, WOUT>;
936
- get read_write(): StateROSWS<ROUT, WOUT, OptionNone>;
937
- }
938
- 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>;
939
- interface OwnerWA<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> {
940
809
  /**Sets the state that is being proxied, and updates subscribers with new value*/
941
810
  set_state(state: S): void;
942
811
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
943
812
  set_transform_read(transform: (val: Result<RIN, string>) => Result<ROUT, string>): void;
944
813
  /**Changes the transform function of the proxy, and updates subscribers with new value*/
945
- set_transform_write(transform: (val: WOUT) => WIN): void;
814
+ set_transform_write(wout_win: (val: WOUT) => WIN, win_wout: (val: WIN) => WOUT): void;
946
815
  get state(): State<ROUT, WOUT, OptionNone>;
947
816
  get read_only(): StateROS<ROUT, OptionNone, WOUT>;
948
- get read_write(): StateROSWA<ROUT, WOUT, OptionNone>;
817
+ get read_write(): StateROSW<ROUT, WOUT, OptionNone>;
949
818
  }
950
- 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>;
951
820
 
952
821
  declare const state: {
953
822
  /**The state key is a symbol used to identify state objects
@@ -985,7 +854,7 @@ declare const state: {
985
854
  }, REL>): StateArraySyncROS<AT, REL>;
986
855
  };
987
856
  ros_ws: {
988
- 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>, {
989
858
  type: "pop";
990
859
  } | {
991
860
  type: "shift";
@@ -1092,7 +961,7 @@ declare const state: {
1092
961
  }, REL>): StateArraySyncRES<AT, REL>;
1093
962
  };
1094
963
  res_ws: {
1095
- 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>, {
1096
965
  type: "pop";
1097
966
  } | {
1098
967
  type: "shift";
@@ -1143,7 +1012,7 @@ declare const state: {
1143
1012
  delete_count: number;
1144
1013
  items?: readonly AT[] | undefined;
1145
1014
  }, REL>): StateArraySyncRESWS<AT, REL>;
1146
- 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>, {
1147
1016
  type: "pop";
1148
1017
  } | {
1149
1018
  type: "shift";
@@ -1244,28 +1113,19 @@ declare const state: {
1244
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>;
1245
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>;
1246
1115
  };
1247
- roa_ws: {
1248
- 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>;
1249
- 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>;
1250
- };
1251
- roa_wa: {
1252
- 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>;
1253
- 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>;
1254
1119
  };
1255
1120
  rea: {
1256
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>;
1257
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>;
1258
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>;
1259
1124
  };
1260
- rea_ws: {
1261
- 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>;
1262
- 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>;
1263
- 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>;
1264
- };
1265
- rea_wa: {
1266
- 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>;
1267
- 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>;
1268
- 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>;
1269
1129
  };
1270
1130
  };
1271
1131
  h: {
@@ -1274,20 +1134,16 @@ declare const state: {
1274
1134
  roa(s: any): s is StateROA<any>;
1275
1135
  res(s: any): s is StateRES<any>;
1276
1136
  ros(s: any): s is StateROS<any>;
1277
- rea_wa(s: any): s is StateREAWA<any>;
1278
- rea_ws(s: any): s is StateREAWS<any>;
1279
- roa_wa(s: any): s is StateROAWA<any>;
1280
- roa_ws(s: any): s is StateROAWS<any>;
1281
- res_wa(s: any): s is StateRESWA<any>;
1282
- res_ws(s: any): s is StateRESWS<any>;
1283
- ros_wa(s: any): s is StateROSWA<any>;
1284
- 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>;
1285
1141
  };
1286
1142
  nums: {
1287
- 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;
1288
1144
  };
1289
1145
  strings: {
1290
- helper(max_length?: number, max_length_bytes?: number): StateStringHelper;
1146
+ helper(max_length?: State<number>, max_length_bytes?: State<number>, writable?: State<boolean>): StateStringHelper;
1291
1147
  };
1292
1148
  enums: {
1293
1149
  helper<L extends {
@@ -1296,7 +1152,7 @@ declare const state: {
1296
1152
  description?: string;
1297
1153
  icon?: _chocbite_ts_lib_svg.SVGFunc;
1298
1154
  };
1299
- }, 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>;
1300
1156
  list<K extends PropertyKey>(list: { [P in K]: {
1301
1157
  name: string;
1302
1158
  description?: string;
@@ -1313,8 +1169,8 @@ declare const state: {
1313
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>;
1314
1170
  };
1315
1171
  ros_ws: {
1316
- 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>;
1317
- 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>;
1318
1174
  };
1319
1175
  res: {
1320
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>;
@@ -1322,9 +1178,9 @@ declare const state: {
1322
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>;
1323
1179
  };
1324
1180
  res_ws: {
1325
- 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>;
1326
- 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>;
1327
- 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>;
1328
1184
  };
1329
1185
  };
1330
1186
  p: {
@@ -1332,49 +1188,57 @@ declare const state: {
1332
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>;
1333
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>;
1334
1190
  };
1335
- ros_ws: {
1336
- <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>;
1337
- <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>;
1338
- };
1339
- ros_wa: {
1340
- <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>;
1341
- <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>;
1342
1200
  };
1343
1201
  roa: {
1344
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>;
1345
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>;
1346
1204
  };
1347
- roa_ws: {
1348
- <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>;
1349
- <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>;
1350
- };
1351
- roa_wa: {
1352
- <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>;
1353
- <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>;
1354
1214
  };
1355
1215
  res: {
1356
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>;
1357
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>;
1358
1218
  };
1359
- res_ws: {
1360
- <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>;
1361
- <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>;
1362
- };
1363
- res_wa: {
1364
- <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>;
1365
- <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>;
1366
1228
  };
1367
1229
  rea: {
1368
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>;
1369
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>;
1370
1232
  };
1371
- rea_ws: {
1372
- <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>;
1373
- <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>;
1374
- };
1375
- rea_wa: {
1376
- <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>;
1377
- <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>;
1378
1242
  };
1379
1243
  };
1380
1244
  r: {
@@ -1397,7 +1261,7 @@ declare const state: {
1397
1261
  class: typeof StateResourceREA;
1398
1262
  };
1399
1263
  rea_wa: {
1400
- 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?: {
1401
1265
  timeout?: number;
1402
1266
  debounce?: number;
1403
1267
  validity?: number | true;
@@ -1413,8 +1277,8 @@ declare const state: {
1413
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>;
1414
1278
  };
1415
1279
  ros_ws: {
1416
- 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>;
1417
- 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>;
1418
1282
  };
1419
1283
  res: {
1420
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>;
@@ -1422,9 +1286,9 @@ declare const state: {
1422
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>;
1423
1287
  };
1424
1288
  res_ws: {
1425
- 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>;
1426
- 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>;
1427
- 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>;
1428
1292
  };
1429
1293
  };
1430
1294
  /**Returns true if the given object promises to be a state */
@@ -1434,9 +1298,9 @@ declare const state: {
1434
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>;
1435
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>;
1436
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>;
1437
- 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>;
1438
- 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>;
1439
- 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>;
1440
1304
  };
1441
1305
 
1442
- 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 };