1 | /**
|
---|
2 | * This file provides type definitions for use with the Flow type checker.
|
---|
3 | *
|
---|
4 | * An important caveat when using these definitions is that the types for
|
---|
5 | * `Collection.Keyed`, `Collection.Indexed`, `Seq.Keyed`, and so on are stubs.
|
---|
6 | * When referring to those types, you can get the proper definitions by
|
---|
7 | * importing the types `KeyedCollection`, `IndexedCollection`, `KeyedSeq`, etc.
|
---|
8 | * For example,
|
---|
9 | *
|
---|
10 | * import { Seq } from 'immutable'
|
---|
11 | * import type { IndexedCollection, IndexedSeq } from 'immutable'
|
---|
12 | *
|
---|
13 | * const someSeq: IndexedSeq<number> = Seq.Indexed.of(1, 2, 3)
|
---|
14 | *
|
---|
15 | * function takesASeq<T, TS: IndexedCollection<T>>(iter: TS): TS {
|
---|
16 | * return iter.butLast()
|
---|
17 | * }
|
---|
18 | *
|
---|
19 | * takesASeq(someSeq)
|
---|
20 | *
|
---|
21 | * @flow strict
|
---|
22 | */
|
---|
23 |
|
---|
24 | // Helper type that represents plain objects allowed as arguments to
|
---|
25 | // some constructors and functions.
|
---|
26 | type PlainObjInput<K, V> = { +[key: K]: V, __proto__: null };
|
---|
27 |
|
---|
28 | type K<T> = $Keys<T>;
|
---|
29 |
|
---|
30 | // Helper types to extract the "keys" and "values" use by the *In() methods.
|
---|
31 | type $KeyOf<C> = $Call<
|
---|
32 | (<K>(?_Collection<K, mixed>) => K) &
|
---|
33 | (<T>(?$ReadOnlyArray<T>) => number) &
|
---|
34 | (<T>(?RecordInstance<T> | T) => $Keys<T>) &
|
---|
35 | (<T: Object>(T) => $Keys<T>),
|
---|
36 | C
|
---|
37 | >;
|
---|
38 |
|
---|
39 | type $ValOf<C, K = $KeyOf<C>> = $Call<
|
---|
40 | (<V>(?_Collection<any, V>) => V) &
|
---|
41 | (<T>(?$ReadOnlyArray<T>) => T) &
|
---|
42 | (<T, K: $Keys<T>>(?RecordInstance<T> | T, K) => $ElementType<T, K>) &
|
---|
43 | (<T: Object>(T) => $Values<T>),
|
---|
44 | C,
|
---|
45 | K
|
---|
46 | >;
|
---|
47 |
|
---|
48 | type $IterableOf<C> = $Call<
|
---|
49 | (<V: Array<any> | IndexedCollection<any> | SetCollection<any>>(
|
---|
50 | V
|
---|
51 | ) => Iterable<$ValOf<V>>) &
|
---|
52 | (<
|
---|
53 | V:
|
---|
54 | | KeyedCollection<any, any>
|
---|
55 | | RecordInstance<any>
|
---|
56 | | PlainObjInput<any, any>
|
---|
57 | >(
|
---|
58 | V
|
---|
59 | ) => Iterable<[$KeyOf<V>, $ValOf<V>]>),
|
---|
60 | C
|
---|
61 | >;
|
---|
62 |
|
---|
63 | const PairSorting: $ReadOnly<{ LeftThenRight: number, RightThenLeft: number }> =
|
---|
64 | {
|
---|
65 | LeftThenRight: -1,
|
---|
66 | RightThenLeft: +1,
|
---|
67 | };
|
---|
68 |
|
---|
69 | type Comparator<T> = (left: T, right: T) => number;
|
---|
70 |
|
---|
71 | declare class _Collection<K, +V> implements ValueObject {
|
---|
72 | equals(other: mixed): boolean;
|
---|
73 | hashCode(): number;
|
---|
74 | get(key: K, ..._: []): V | void;
|
---|
75 | get<NSV>(key: K, notSetValue: NSV): V | NSV;
|
---|
76 | has(key: K): boolean;
|
---|
77 | includes(value: V): boolean;
|
---|
78 | contains(value: V): boolean;
|
---|
79 | first(): V | void;
|
---|
80 | first<NSV>(notSetValue: NSV): V | NSV;
|
---|
81 | last(): V | void;
|
---|
82 | last<NSV>(notSetValue: NSV): V | NSV;
|
---|
83 |
|
---|
84 | hasIn(keyPath: Iterable<mixed>): boolean;
|
---|
85 |
|
---|
86 | getIn(keyPath: [], notSetValue?: mixed): this;
|
---|
87 | getIn<NSV>(keyPath: [K], notSetValue: NSV): V | NSV;
|
---|
88 | getIn<NSV, K2: $KeyOf<V>>(
|
---|
89 | keyPath: [K, K2],
|
---|
90 | notSetValue: NSV
|
---|
91 | ): $ValOf<V, K2> | NSV;
|
---|
92 | getIn<NSV, K2: $KeyOf<V>, K3: $KeyOf<$ValOf<V, K2>>>(
|
---|
93 | keyPath: [K, K2, K3],
|
---|
94 | notSetValue: NSV
|
---|
95 | ): $ValOf<$ValOf<V, K2>, K3> | NSV;
|
---|
96 | getIn<
|
---|
97 | NSV,
|
---|
98 | K2: $KeyOf<V>,
|
---|
99 | K3: $KeyOf<$ValOf<V, K2>>,
|
---|
100 | K4: $KeyOf<$ValOf<$ValOf<V, K2>, K3>>
|
---|
101 | >(
|
---|
102 | keyPath: [K, K2, K3, K4],
|
---|
103 | notSetValue: NSV
|
---|
104 | ): $ValOf<$ValOf<$ValOf<V, K2>, K3>, K4> | NSV;
|
---|
105 | getIn<
|
---|
106 | NSV,
|
---|
107 | K2: $KeyOf<V>,
|
---|
108 | K3: $KeyOf<$ValOf<V, K2>>,
|
---|
109 | K4: $KeyOf<$ValOf<$ValOf<V, K2>, K3>>,
|
---|
110 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<V, K2>, K3>, K4>>
|
---|
111 | >(
|
---|
112 | keyPath: [K, K2, K3, K4, K5],
|
---|
113 | notSetValue: NSV
|
---|
114 | ): $ValOf<$ValOf<$ValOf<$ValOf<V, K2>, K3>, K4>, K5> | NSV;
|
---|
115 |
|
---|
116 | update<U>(updater: (value: this) => U): U;
|
---|
117 |
|
---|
118 | toJS(): Array<any> | { [key: string]: mixed };
|
---|
119 | toJSON(): Array<V> | { [key: string]: V };
|
---|
120 | toArray(): Array<V> | Array<[K, V]>;
|
---|
121 | toObject(): { [key: string]: V };
|
---|
122 | toMap(): Map<K, V>;
|
---|
123 | toOrderedMap(): OrderedMap<K, V>;
|
---|
124 | toSet(): Set<V>;
|
---|
125 | toOrderedSet(): OrderedSet<V>;
|
---|
126 | toList(): List<V>;
|
---|
127 | toStack(): Stack<V>;
|
---|
128 | toSeq(): Seq<K, V>;
|
---|
129 | toKeyedSeq(): KeyedSeq<K, V>;
|
---|
130 | toIndexedSeq(): IndexedSeq<V>;
|
---|
131 | toSetSeq(): SetSeq<V>;
|
---|
132 |
|
---|
133 | keys(): Iterator<K>;
|
---|
134 | values(): Iterator<V>;
|
---|
135 | entries(): Iterator<[K, V]>;
|
---|
136 |
|
---|
137 | keySeq(): IndexedSeq<K>;
|
---|
138 | valueSeq(): IndexedSeq<V>;
|
---|
139 | entrySeq(): IndexedSeq<[K, V]>;
|
---|
140 |
|
---|
141 | reverse(): this;
|
---|
142 | sort(comparator?: Comparator<V>): this;
|
---|
143 |
|
---|
144 | sortBy<C>(
|
---|
145 | comparatorValueMapper: (value: V, key: K, iter: this) => C,
|
---|
146 | comparator?: Comparator<C>
|
---|
147 | ): this;
|
---|
148 |
|
---|
149 | groupBy<G>(
|
---|
150 | grouper: (value: V, key: K, iter: this) => G,
|
---|
151 | context?: mixed
|
---|
152 | ): KeyedSeq<G, this>;
|
---|
153 |
|
---|
154 | forEach(
|
---|
155 | sideEffect: (value: V, key: K, iter: this) => any,
|
---|
156 | context?: mixed
|
---|
157 | ): number;
|
---|
158 |
|
---|
159 | slice(begin?: number, end?: number): this;
|
---|
160 | rest(): this;
|
---|
161 | butLast(): this;
|
---|
162 | skip(amount: number): this;
|
---|
163 | skipLast(amount: number): this;
|
---|
164 | skipWhile(
|
---|
165 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
166 | context?: mixed
|
---|
167 | ): this;
|
---|
168 | skipUntil(
|
---|
169 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
170 | context?: mixed
|
---|
171 | ): this;
|
---|
172 | take(amount: number): this;
|
---|
173 | takeLast(amount: number): this;
|
---|
174 | takeWhile(
|
---|
175 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
176 | context?: mixed
|
---|
177 | ): this;
|
---|
178 | takeUntil(
|
---|
179 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
180 | context?: mixed
|
---|
181 | ): this;
|
---|
182 |
|
---|
183 | filterNot(
|
---|
184 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
185 | context?: mixed
|
---|
186 | ): this;
|
---|
187 |
|
---|
188 | reduce<R>(
|
---|
189 | reducer: (reduction: R, value: V, key: K, iter: this) => R,
|
---|
190 | initialReduction: R,
|
---|
191 | context?: mixed
|
---|
192 | ): R;
|
---|
193 | reduce<R>(reducer: (reduction: V | R, value: V, key: K, iter: this) => R): R;
|
---|
194 |
|
---|
195 | reduceRight<R>(
|
---|
196 | reducer: (reduction: R, value: V, key: K, iter: this) => R,
|
---|
197 | initialReduction: R,
|
---|
198 | context?: mixed
|
---|
199 | ): R;
|
---|
200 | reduceRight<R>(
|
---|
201 | reducer: (reduction: V | R, value: V, key: K, iter: this) => R
|
---|
202 | ): R;
|
---|
203 |
|
---|
204 | every(
|
---|
205 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
206 | context?: mixed
|
---|
207 | ): boolean;
|
---|
208 | some(
|
---|
209 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
210 | context?: mixed
|
---|
211 | ): boolean;
|
---|
212 | join(separator?: string): string;
|
---|
213 | isEmpty(): boolean;
|
---|
214 | count(
|
---|
215 | predicate?: (value: V, key: K, iter: this) => mixed,
|
---|
216 | context?: mixed
|
---|
217 | ): number;
|
---|
218 | countBy<G>(
|
---|
219 | grouper: (value: V, key: K, iter: this) => G,
|
---|
220 | context?: mixed
|
---|
221 | ): Map<G, number>;
|
---|
222 |
|
---|
223 | find(
|
---|
224 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
225 | context?: mixed,
|
---|
226 | notSetValue?: V
|
---|
227 | ): V | void;
|
---|
228 | findLast(
|
---|
229 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
230 | context?: mixed,
|
---|
231 | notSetValue?: V
|
---|
232 | ): V | void;
|
---|
233 |
|
---|
234 | findEntry(predicate: (value: V, key: K, iter: this) => mixed): [K, V] | void;
|
---|
235 | findLastEntry(
|
---|
236 | predicate: (value: V, key: K, iter: this) => mixed
|
---|
237 | ): [K, V] | void;
|
---|
238 |
|
---|
239 | findKey(
|
---|
240 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
241 | context?: mixed
|
---|
242 | ): K | void;
|
---|
243 | findLastKey(
|
---|
244 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
245 | context?: mixed
|
---|
246 | ): K | void;
|
---|
247 |
|
---|
248 | keyOf(searchValue: V): K | void;
|
---|
249 | lastKeyOf(searchValue: V): K | void;
|
---|
250 |
|
---|
251 | max(comparator?: Comparator<V>): V;
|
---|
252 | maxBy<C>(
|
---|
253 | comparatorValueMapper: (value: V, key: K, iter: this) => C,
|
---|
254 | comparator?: Comparator<C>
|
---|
255 | ): V;
|
---|
256 | min(comparator?: Comparator<V>): V;
|
---|
257 | minBy<C>(
|
---|
258 | comparatorValueMapper: (value: V, key: K, iter: this) => C,
|
---|
259 | comparator?: Comparator<C>
|
---|
260 | ): V;
|
---|
261 |
|
---|
262 | isSubset(iter: Iterable<V>): boolean;
|
---|
263 | isSuperset(iter: Iterable<V>): boolean;
|
---|
264 | }
|
---|
265 |
|
---|
266 | declare function isImmutable(
|
---|
267 | maybeImmutable: mixed
|
---|
268 | ): boolean %checks(maybeImmutable instanceof Collection);
|
---|
269 | declare function isCollection(
|
---|
270 | maybeCollection: mixed
|
---|
271 | ): boolean %checks(maybeCollection instanceof Collection);
|
---|
272 | declare function isKeyed(
|
---|
273 | maybeKeyed: mixed
|
---|
274 | ): boolean %checks(maybeKeyed instanceof KeyedCollection);
|
---|
275 | declare function isIndexed(
|
---|
276 | maybeIndexed: mixed
|
---|
277 | ): boolean %checks(maybeIndexed instanceof IndexedCollection);
|
---|
278 | declare function isAssociative(
|
---|
279 | maybeAssociative: mixed
|
---|
280 | ): boolean %checks(maybeAssociative instanceof KeyedCollection ||
|
---|
281 | maybeAssociative instanceof IndexedCollection);
|
---|
282 | declare function isOrdered(
|
---|
283 | maybeOrdered: mixed
|
---|
284 | ): boolean %checks(maybeOrdered instanceof IndexedCollection ||
|
---|
285 | maybeOrdered instanceof OrderedMap ||
|
---|
286 | maybeOrdered instanceof OrderedSet);
|
---|
287 | declare function isValueObject(maybeValue: mixed): boolean;
|
---|
288 |
|
---|
289 | declare function isSeq(maybeSeq: any): boolean %checks(maybeSeq instanceof Seq);
|
---|
290 | declare function isList(maybeList: any): boolean %checks(maybeList instanceof
|
---|
291 | List);
|
---|
292 | declare function isMap(maybeMap: any): boolean %checks(maybeMap instanceof Map);
|
---|
293 | declare function isOrderedMap(
|
---|
294 | maybeOrderedMap: any
|
---|
295 | ): boolean %checks(maybeOrderedMap instanceof OrderedMap);
|
---|
296 | declare function isStack(maybeStack: any): boolean %checks(maybeStack instanceof
|
---|
297 | Stack);
|
---|
298 | declare function isSet(maybeSet: any): boolean %checks(maybeSet instanceof Set);
|
---|
299 | declare function isOrderedSet(
|
---|
300 | maybeOrderedSet: any
|
---|
301 | ): boolean %checks(maybeOrderedSet instanceof OrderedSet);
|
---|
302 | declare function isRecord(
|
---|
303 | maybeRecord: any
|
---|
304 | ): boolean %checks(maybeRecord instanceof Record);
|
---|
305 |
|
---|
306 | declare interface ValueObject {
|
---|
307 | equals(other: mixed): boolean;
|
---|
308 | hashCode(): number;
|
---|
309 | }
|
---|
310 |
|
---|
311 | declare class Collection<K, +V> extends _Collection<K, V> {
|
---|
312 | static Keyed: typeof KeyedCollection;
|
---|
313 | static Indexed: typeof IndexedCollection;
|
---|
314 | static Set: typeof SetCollection;
|
---|
315 |
|
---|
316 | static isCollection: typeof isCollection;
|
---|
317 | static isKeyed: typeof isKeyed;
|
---|
318 | static isIndexed: typeof isIndexed;
|
---|
319 | static isAssociative: typeof isAssociative;
|
---|
320 | static isOrdered: typeof isOrdered;
|
---|
321 | }
|
---|
322 |
|
---|
323 | declare class KeyedCollection<K, +V> extends Collection<K, V> {
|
---|
324 | static <K, V>(
|
---|
325 | values?: Iterable<[K, V]> | PlainObjInput<K, V>
|
---|
326 | ): KeyedCollection<K, V>;
|
---|
327 |
|
---|
328 | toJS(): { [key: string]: mixed };
|
---|
329 | toJSON(): { [key: string]: V };
|
---|
330 | toArray(): Array<[K, V]>;
|
---|
331 | @@iterator(): Iterator<[K, V]>;
|
---|
332 | toSeq(): KeyedSeq<K, V>;
|
---|
333 | flip(): KeyedCollection<V, K>;
|
---|
334 |
|
---|
335 | concat<KC, VC>(
|
---|
336 | ...iters: Array<Iterable<[KC, VC]> | PlainObjInput<KC, VC>>
|
---|
337 | ): KeyedCollection<K | KC, V | VC>;
|
---|
338 |
|
---|
339 | filter(predicate: typeof Boolean): KeyedCollection<K, $NonMaybeType<V>>;
|
---|
340 | filter(
|
---|
341 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
342 | context?: mixed
|
---|
343 | ): KeyedCollection<K, V>;
|
---|
344 |
|
---|
345 | partition(
|
---|
346 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
347 | context?: mixed
|
---|
348 | ): [this, this];
|
---|
349 |
|
---|
350 | map<M>(
|
---|
351 | mapper: (value: V, key: K, iter: this) => M,
|
---|
352 | context?: mixed
|
---|
353 | ): KeyedCollection<K, M>;
|
---|
354 |
|
---|
355 | mapKeys<M>(
|
---|
356 | mapper: (key: K, value: V, iter: this) => M,
|
---|
357 | context?: mixed
|
---|
358 | ): KeyedCollection<M, V>;
|
---|
359 |
|
---|
360 | mapEntries<KM, VM>(
|
---|
361 | mapper: (entry: [K, V], index: number, iter: this) => [KM, VM],
|
---|
362 | context?: mixed
|
---|
363 | ): KeyedCollection<KM, VM>;
|
---|
364 |
|
---|
365 | flatMap<KM, VM>(
|
---|
366 | mapper: (value: V, key: K, iter: this) => Iterable<[KM, VM]>,
|
---|
367 | context?: mixed
|
---|
368 | ): KeyedCollection<KM, VM>;
|
---|
369 |
|
---|
370 | flatten(depth?: number): KeyedCollection<any, any>;
|
---|
371 | flatten(shallow?: boolean): KeyedCollection<any, any>;
|
---|
372 | }
|
---|
373 |
|
---|
374 | Collection.Keyed = KeyedCollection;
|
---|
375 |
|
---|
376 | declare class IndexedCollection<+T> extends Collection<number, T> {
|
---|
377 | static <T>(iter?: Iterable<T>): IndexedCollection<T>;
|
---|
378 |
|
---|
379 | toJS(): Array<mixed>;
|
---|
380 | toJSON(): Array<T>;
|
---|
381 | toArray(): Array<T>;
|
---|
382 | @@iterator(): Iterator<T>;
|
---|
383 | toSeq(): IndexedSeq<T>;
|
---|
384 | fromEntrySeq<K, V>(): KeyedSeq<K, V>;
|
---|
385 | interpose(separator: T): this;
|
---|
386 | interleave(...collections: Iterable<T>[]): this;
|
---|
387 | splice(index: number, removeNum: number, ...values: T[]): this;
|
---|
388 |
|
---|
389 | zip<A>(a: Iterable<A>, ..._: []): IndexedCollection<[T, A]>;
|
---|
390 | zip<A, B>(
|
---|
391 | a: Iterable<A>,
|
---|
392 | b: Iterable<B>,
|
---|
393 | ..._: []
|
---|
394 | ): IndexedCollection<[T, A, B]>;
|
---|
395 | zip<A, B, C>(
|
---|
396 | a: Iterable<A>,
|
---|
397 | b: Iterable<B>,
|
---|
398 | c: Iterable<C>,
|
---|
399 | ..._: []
|
---|
400 | ): IndexedCollection<[T, A, B, C]>;
|
---|
401 | zip<A, B, C, D>(
|
---|
402 | a: Iterable<A>,
|
---|
403 | b: Iterable<B>,
|
---|
404 | c: Iterable<C>,
|
---|
405 | d: Iterable<D>,
|
---|
406 | ..._: []
|
---|
407 | ): IndexedCollection<[T, A, B, C, D]>;
|
---|
408 | zip<A, B, C, D, E>(
|
---|
409 | a: Iterable<A>,
|
---|
410 | b: Iterable<B>,
|
---|
411 | c: Iterable<C>,
|
---|
412 | d: Iterable<D>,
|
---|
413 | e: Iterable<E>,
|
---|
414 | ..._: []
|
---|
415 | ): IndexedCollection<[T, A, B, C, D, E]>;
|
---|
416 |
|
---|
417 | zipAll<A>(a: Iterable<A>, ..._: []): IndexedCollection<[T | void, A | void]>;
|
---|
418 | zipAll<A, B>(
|
---|
419 | a: Iterable<A>,
|
---|
420 | b: Iterable<B>,
|
---|
421 | ..._: []
|
---|
422 | ): IndexedCollection<[T | void, A | void, B | void]>;
|
---|
423 | zipAll<A, B, C>(
|
---|
424 | a: Iterable<A>,
|
---|
425 | b: Iterable<B>,
|
---|
426 | c: Iterable<C>,
|
---|
427 | ..._: []
|
---|
428 | ): IndexedCollection<[T | void, A | void, B | void, C | void]>;
|
---|
429 | zipAll<A, B, C, D>(
|
---|
430 | a: Iterable<A>,
|
---|
431 | b: Iterable<B>,
|
---|
432 | c: Iterable<C>,
|
---|
433 | d: Iterable<D>,
|
---|
434 | ..._: []
|
---|
435 | ): IndexedCollection<[T | void, A | void, B | void, C | void, D | void]>;
|
---|
436 | zipAll<A, B, C, D, E>(
|
---|
437 | a: Iterable<A>,
|
---|
438 | b: Iterable<B>,
|
---|
439 | c: Iterable<C>,
|
---|
440 | d: Iterable<D>,
|
---|
441 | e: Iterable<E>,
|
---|
442 | ..._: []
|
---|
443 | ): IndexedCollection<
|
---|
444 | [T | void, A | void, B | void, C | void, D | void, E | void]
|
---|
445 | >;
|
---|
446 |
|
---|
447 | zipWith<A, R>(
|
---|
448 | zipper: (value: T, a: A) => R,
|
---|
449 | a: Iterable<A>,
|
---|
450 | ..._: []
|
---|
451 | ): IndexedCollection<R>;
|
---|
452 | zipWith<A, B, R>(
|
---|
453 | zipper: (value: T, a: A, b: B) => R,
|
---|
454 | a: Iterable<A>,
|
---|
455 | b: Iterable<B>,
|
---|
456 | ..._: []
|
---|
457 | ): IndexedCollection<R>;
|
---|
458 | zipWith<A, B, C, R>(
|
---|
459 | zipper: (value: T, a: A, b: B, c: C) => R,
|
---|
460 | a: Iterable<A>,
|
---|
461 | b: Iterable<B>,
|
---|
462 | c: Iterable<C>,
|
---|
463 | ..._: []
|
---|
464 | ): IndexedCollection<R>;
|
---|
465 | zipWith<A, B, C, D, R>(
|
---|
466 | zipper: (value: T, a: A, b: B, c: C, d: D) => R,
|
---|
467 | a: Iterable<A>,
|
---|
468 | b: Iterable<B>,
|
---|
469 | c: Iterable<C>,
|
---|
470 | d: Iterable<D>,
|
---|
471 | ..._: []
|
---|
472 | ): IndexedCollection<R>;
|
---|
473 | zipWith<A, B, C, D, E, R>(
|
---|
474 | zipper: (value: T, a: A, b: B, c: C, d: D, e: E) => R,
|
---|
475 | a: Iterable<A>,
|
---|
476 | b: Iterable<B>,
|
---|
477 | c: Iterable<C>,
|
---|
478 | d: Iterable<D>,
|
---|
479 | e: Iterable<E>,
|
---|
480 | ..._: []
|
---|
481 | ): IndexedCollection<R>;
|
---|
482 |
|
---|
483 | indexOf(searchValue: T): number;
|
---|
484 | lastIndexOf(searchValue: T): number;
|
---|
485 | findIndex(
|
---|
486 | predicate: (value: T, index: number, iter: this) => mixed,
|
---|
487 | context?: mixed
|
---|
488 | ): number;
|
---|
489 | findLastIndex(
|
---|
490 | predicate: (value: T, index: number, iter: this) => mixed,
|
---|
491 | context?: mixed
|
---|
492 | ): number;
|
---|
493 |
|
---|
494 | concat<C>(...iters: Array<Iterable<C> | C>): IndexedCollection<T | C>;
|
---|
495 |
|
---|
496 | filter(predicate: typeof Boolean): IndexedCollection<$NonMaybeType<T>>;
|
---|
497 | filter(
|
---|
498 | predicate: (value: T, index: number, iter: this) => mixed,
|
---|
499 | context?: mixed
|
---|
500 | ): IndexedCollection<T>;
|
---|
501 |
|
---|
502 | partition(
|
---|
503 | predicate: (value: T, index: number, iter: this) => mixed,
|
---|
504 | context?: mixed
|
---|
505 | ): [this, this];
|
---|
506 |
|
---|
507 | map<M>(
|
---|
508 | mapper: (value: T, index: number, iter: this) => M,
|
---|
509 | context?: mixed
|
---|
510 | ): IndexedCollection<M>;
|
---|
511 |
|
---|
512 | flatMap<M>(
|
---|
513 | mapper: (value: T, index: number, iter: this) => Iterable<M>,
|
---|
514 | context?: mixed
|
---|
515 | ): IndexedCollection<M>;
|
---|
516 |
|
---|
517 | flatten(depth?: number): IndexedCollection<any>;
|
---|
518 | flatten(shallow?: boolean): IndexedCollection<any>;
|
---|
519 | }
|
---|
520 |
|
---|
521 | declare class SetCollection<+T> extends Collection<T, T> {
|
---|
522 | static <T>(iter?: Iterable<T>): SetCollection<T>;
|
---|
523 |
|
---|
524 | toJS(): Array<mixed>;
|
---|
525 | toJSON(): Array<T>;
|
---|
526 | toArray(): Array<T>;
|
---|
527 | @@iterator(): Iterator<T>;
|
---|
528 | toSeq(): SetSeq<T>;
|
---|
529 |
|
---|
530 | concat<U>(...collections: Iterable<U>[]): SetCollection<T | U>;
|
---|
531 |
|
---|
532 | // `filter`, `map` and `flatMap` cannot be defined further up the hierarchy,
|
---|
533 | // because the implementation for `KeyedCollection` allows the value type to
|
---|
534 | // change without constraining the key type. That does not work for
|
---|
535 | // `SetCollection` - the value and key types *must* match.
|
---|
536 | filter(predicate: typeof Boolean): SetCollection<$NonMaybeType<T>>;
|
---|
537 | filter(
|
---|
538 | predicate: (value: T, value: T, iter: this) => mixed,
|
---|
539 | context?: mixed
|
---|
540 | ): SetCollection<T>;
|
---|
541 |
|
---|
542 | partition(
|
---|
543 | predicate: (value: T, value: T, iter: this) => mixed,
|
---|
544 | context?: mixed
|
---|
545 | ): [this, this];
|
---|
546 |
|
---|
547 | map<M>(
|
---|
548 | mapper: (value: T, value: T, iter: this) => M,
|
---|
549 | context?: mixed
|
---|
550 | ): SetCollection<M>;
|
---|
551 |
|
---|
552 | flatMap<M>(
|
---|
553 | mapper: (value: T, value: T, iter: this) => Iterable<M>,
|
---|
554 | context?: mixed
|
---|
555 | ): SetCollection<M>;
|
---|
556 |
|
---|
557 | flatten(depth?: number): SetCollection<any>;
|
---|
558 | flatten(shallow?: boolean): SetCollection<any>;
|
---|
559 | }
|
---|
560 |
|
---|
561 | declare function isSeq(maybeSeq: mixed): boolean %checks(maybeSeq instanceof
|
---|
562 | Seq);
|
---|
563 | declare class Seq<K, +V> extends _Collection<K, V> {
|
---|
564 | static Keyed: typeof KeyedSeq;
|
---|
565 | static Indexed: typeof IndexedSeq;
|
---|
566 | static Set: typeof SetSeq;
|
---|
567 |
|
---|
568 | static <K, V>(values: KeyedSeq<K, V>): KeyedSeq<K, V>;
|
---|
569 | static <T>(values: SetSeq<T>): SetSeq<K, V>;
|
---|
570 | static <T>(values: Iterable<T>): IndexedSeq<T>;
|
---|
571 | static <K, V>(values?: PlainObjInput<K, V>): KeyedSeq<K, V>;
|
---|
572 |
|
---|
573 | static isSeq: typeof isSeq;
|
---|
574 |
|
---|
575 | size: number | void;
|
---|
576 | cacheResult(): this;
|
---|
577 | toSeq(): this;
|
---|
578 | }
|
---|
579 |
|
---|
580 | declare class KeyedSeq<K, +V> extends Seq<K, V> mixins KeyedCollection<K, V> {
|
---|
581 | static <K, V>(
|
---|
582 | values?: Iterable<[K, V]> | PlainObjInput<K, V>
|
---|
583 | ): KeyedSeq<K, V>;
|
---|
584 |
|
---|
585 | // Override specialized return types
|
---|
586 | flip(): KeyedSeq<V, K>;
|
---|
587 |
|
---|
588 | concat<KC, VC>(
|
---|
589 | ...iters: Array<Iterable<[KC, VC]> | PlainObjInput<KC, VC>>
|
---|
590 | ): KeyedSeq<K | KC, V | VC>;
|
---|
591 |
|
---|
592 | filter(predicate: typeof Boolean): KeyedSeq<K, $NonMaybeType<V>>;
|
---|
593 | filter(
|
---|
594 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
595 | context?: mixed
|
---|
596 | ): KeyedSeq<K, V>;
|
---|
597 |
|
---|
598 | partition(
|
---|
599 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
600 | context?: mixed
|
---|
601 | ): [this, this];
|
---|
602 |
|
---|
603 | map<M>(
|
---|
604 | mapper: (value: V, key: K, iter: this) => M,
|
---|
605 | context?: mixed
|
---|
606 | ): KeyedSeq<K, M>;
|
---|
607 |
|
---|
608 | mapKeys<M>(
|
---|
609 | mapper: (key: K, value: V, iter: this) => M,
|
---|
610 | context?: mixed
|
---|
611 | ): KeyedSeq<M, V>;
|
---|
612 |
|
---|
613 | mapEntries<KM, VM>(
|
---|
614 | mapper: (entry: [K, V], index: number, iter: this) => [KM, VM],
|
---|
615 | context?: mixed
|
---|
616 | ): KeyedSeq<KM, VM>;
|
---|
617 |
|
---|
618 | flatMap<KM, VM>(
|
---|
619 | mapper: (value: V, key: K, iter: this) => Iterable<[KM, VM]>,
|
---|
620 | context?: mixed
|
---|
621 | ): KeyedSeq<KM, VM>;
|
---|
622 |
|
---|
623 | flatten(depth?: number): KeyedSeq<any, any>;
|
---|
624 | flatten(shallow?: boolean): KeyedSeq<any, any>;
|
---|
625 | }
|
---|
626 |
|
---|
627 | declare class IndexedSeq<+T>
|
---|
628 | extends Seq<number, T>
|
---|
629 | mixins IndexedCollection<T>
|
---|
630 | {
|
---|
631 | static <T>(values?: Iterable<T>): IndexedSeq<T>;
|
---|
632 |
|
---|
633 | static of<T>(...values: T[]): IndexedSeq<T>;
|
---|
634 |
|
---|
635 | // Override specialized return types
|
---|
636 |
|
---|
637 | concat<C>(...iters: Array<Iterable<C> | C>): IndexedSeq<T | C>;
|
---|
638 |
|
---|
639 | filter(predicate: typeof Boolean): IndexedSeq<$NonMaybeType<T>>;
|
---|
640 | filter(
|
---|
641 | predicate: (value: T, index: number, iter: this) => mixed,
|
---|
642 | context?: mixed
|
---|
643 | ): IndexedSeq<T>;
|
---|
644 |
|
---|
645 | partition(
|
---|
646 | predicate: (value: T, index: number, iter: this) => mixed,
|
---|
647 | context?: mixed
|
---|
648 | ): [this, this];
|
---|
649 |
|
---|
650 | map<M>(
|
---|
651 | mapper: (value: T, index: number, iter: this) => M,
|
---|
652 | context?: mixed
|
---|
653 | ): IndexedSeq<M>;
|
---|
654 |
|
---|
655 | flatMap<M>(
|
---|
656 | mapper: (value: T, index: number, iter: this) => Iterable<M>,
|
---|
657 | context?: mixed
|
---|
658 | ): IndexedSeq<M>;
|
---|
659 |
|
---|
660 | flatten(depth?: number): IndexedSeq<any>;
|
---|
661 | flatten(shallow?: boolean): IndexedSeq<any>;
|
---|
662 |
|
---|
663 | zip<A>(a: Iterable<A>, ..._: []): IndexedSeq<[T, A]>;
|
---|
664 | zip<A, B>(a: Iterable<A>, b: Iterable<B>, ..._: []): IndexedSeq<[T, A, B]>;
|
---|
665 | zip<A, B, C>(
|
---|
666 | a: Iterable<A>,
|
---|
667 | b: Iterable<B>,
|
---|
668 | c: Iterable<C>,
|
---|
669 | ..._: []
|
---|
670 | ): IndexedSeq<[T, A, B, C]>;
|
---|
671 | zip<A, B, C, D>(
|
---|
672 | a: Iterable<A>,
|
---|
673 | b: Iterable<B>,
|
---|
674 | c: Iterable<C>,
|
---|
675 | d: Iterable<D>,
|
---|
676 | ..._: []
|
---|
677 | ): IndexedSeq<[T, A, B, C, D]>;
|
---|
678 | zip<A, B, C, D, E>(
|
---|
679 | a: Iterable<A>,
|
---|
680 | b: Iterable<B>,
|
---|
681 | c: Iterable<C>,
|
---|
682 | d: Iterable<D>,
|
---|
683 | e: Iterable<E>,
|
---|
684 | ..._: []
|
---|
685 | ): IndexedSeq<[T, A, B, C, D, E]>;
|
---|
686 |
|
---|
687 | zipAll<A>(a: Iterable<A>, ..._: []): IndexedSeq<[T | void, A | void]>;
|
---|
688 | zipAll<A, B>(
|
---|
689 | a: Iterable<A>,
|
---|
690 | b: Iterable<B>,
|
---|
691 | ..._: []
|
---|
692 | ): IndexedSeq<[T | void, A | void, B | void]>;
|
---|
693 | zipAll<A, B, C>(
|
---|
694 | a: Iterable<A>,
|
---|
695 | b: Iterable<B>,
|
---|
696 | c: Iterable<C>,
|
---|
697 | ..._: []
|
---|
698 | ): IndexedSeq<[T | void, A | void, B | void, C | void]>;
|
---|
699 | zipAll<A, B, C, D>(
|
---|
700 | a: Iterable<A>,
|
---|
701 | b: Iterable<B>,
|
---|
702 | c: Iterable<C>,
|
---|
703 | d: Iterable<D>,
|
---|
704 | ..._: []
|
---|
705 | ): IndexedSeq<[T | void, A | void, B | void, C | void, D | void]>;
|
---|
706 | zipAll<A, B, C, D, E>(
|
---|
707 | a: Iterable<A>,
|
---|
708 | b: Iterable<B>,
|
---|
709 | c: Iterable<C>,
|
---|
710 | d: Iterable<D>,
|
---|
711 | e: Iterable<E>,
|
---|
712 | ..._: []
|
---|
713 | ): IndexedSeq<[T | void, A | void, B | void, C | void, D | void, E | void]>;
|
---|
714 |
|
---|
715 | zipWith<A, R>(
|
---|
716 | zipper: (value: T, a: A) => R,
|
---|
717 | a: Iterable<A>,
|
---|
718 | ..._: []
|
---|
719 | ): IndexedSeq<R>;
|
---|
720 | zipWith<A, B, R>(
|
---|
721 | zipper: (value: T, a: A, b: B) => R,
|
---|
722 | a: Iterable<A>,
|
---|
723 | b: Iterable<B>,
|
---|
724 | ..._: []
|
---|
725 | ): IndexedSeq<R>;
|
---|
726 | zipWith<A, B, C, R>(
|
---|
727 | zipper: (value: T, a: A, b: B, c: C) => R,
|
---|
728 | a: Iterable<A>,
|
---|
729 | b: Iterable<B>,
|
---|
730 | c: Iterable<C>,
|
---|
731 | ..._: []
|
---|
732 | ): IndexedSeq<R>;
|
---|
733 | zipWith<A, B, C, D, R>(
|
---|
734 | zipper: (value: T, a: A, b: B, c: C, d: D) => R,
|
---|
735 | a: Iterable<A>,
|
---|
736 | b: Iterable<B>,
|
---|
737 | c: Iterable<C>,
|
---|
738 | d: Iterable<D>,
|
---|
739 | ..._: []
|
---|
740 | ): IndexedSeq<R>;
|
---|
741 | zipWith<A, B, C, D, E, R>(
|
---|
742 | zipper: (value: T, a: A, b: B, c: C, d: D, e: E) => R,
|
---|
743 | a: Iterable<A>,
|
---|
744 | b: Iterable<B>,
|
---|
745 | c: Iterable<C>,
|
---|
746 | d: Iterable<D>,
|
---|
747 | e: Iterable<E>,
|
---|
748 | ..._: []
|
---|
749 | ): IndexedSeq<R>;
|
---|
750 | }
|
---|
751 |
|
---|
752 | declare class SetSeq<+T> extends Seq<T, T> mixins SetCollection<T> {
|
---|
753 | static <T>(values?: Iterable<T>): SetSeq<T>;
|
---|
754 |
|
---|
755 | static of<T>(...values: T[]): SetSeq<T>;
|
---|
756 |
|
---|
757 | // Override specialized return types
|
---|
758 |
|
---|
759 | concat<U>(...collections: Iterable<U>[]): SetSeq<T | U>;
|
---|
760 |
|
---|
761 | filter(predicate: typeof Boolean): SetSeq<$NonMaybeType<T>>;
|
---|
762 | filter(
|
---|
763 | predicate: (value: T, value: T, iter: this) => mixed,
|
---|
764 | context?: mixed
|
---|
765 | ): SetSeq<T>;
|
---|
766 |
|
---|
767 | partition(
|
---|
768 | predicate: (value: T, value: T, iter: this) => mixed,
|
---|
769 | context?: mixed
|
---|
770 | ): [this, this];
|
---|
771 |
|
---|
772 | map<M>(
|
---|
773 | mapper: (value: T, value: T, iter: this) => M,
|
---|
774 | context?: mixed
|
---|
775 | ): SetSeq<M>;
|
---|
776 |
|
---|
777 | flatMap<M>(
|
---|
778 | mapper: (value: T, value: T, iter: this) => Iterable<M>,
|
---|
779 | context?: mixed
|
---|
780 | ): SetSeq<M>;
|
---|
781 |
|
---|
782 | flatten(depth?: number): SetSeq<any>;
|
---|
783 | flatten(shallow?: boolean): SetSeq<any>;
|
---|
784 | }
|
---|
785 |
|
---|
786 | declare class UpdatableInCollection<K, +V> {
|
---|
787 | setIn<S>(keyPath: [], value: S): S;
|
---|
788 | setIn(keyPath: [K], value: V): this;
|
---|
789 | setIn<K2: $KeyOf<V>, S: $ValOf<V, K2>>(keyPath: [K, K2], value: S): this;
|
---|
790 | setIn<K2: $KeyOf<V>, K3: $KeyOf<$ValOf<V, K2>>, S: $ValOf<$ValOf<V, K2>, K3>>(
|
---|
791 | keyPath: [K, K2, K3],
|
---|
792 | value: S
|
---|
793 | ): this;
|
---|
794 | setIn<
|
---|
795 | K2: $KeyOf<V>,
|
---|
796 | K3: $KeyOf<$ValOf<V, K2>>,
|
---|
797 | K4: $KeyOf<$ValOf<$ValOf<V, K2>, K3>>,
|
---|
798 | S: $ValOf<$ValOf<$ValOf<V, K2>, K3>, K4>
|
---|
799 | >(
|
---|
800 | keyPath: [K, K2, K3, K4],
|
---|
801 | value: S
|
---|
802 | ): this;
|
---|
803 | setIn<
|
---|
804 | K2: $KeyOf<V>,
|
---|
805 | K3: $KeyOf<$ValOf<V, K2>>,
|
---|
806 | K4: $KeyOf<$ValOf<$ValOf<V, K2>, K3>>,
|
---|
807 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<V, K2>, K3>, K4>>,
|
---|
808 | S: $ValOf<$ValOf<$ValOf<$ValOf<V, K2>, K3>, K4>, K5>
|
---|
809 | >(
|
---|
810 | keyPath: [K, K2, K3, K4, K5],
|
---|
811 | value: S
|
---|
812 | ): this;
|
---|
813 |
|
---|
814 | deleteIn(keyPath: []): void;
|
---|
815 | deleteIn(keyPath: [K]): this;
|
---|
816 | deleteIn<K2: $KeyOf<V>>(keyPath: [K, K2]): this;
|
---|
817 | deleteIn<K2: $KeyOf<V>, K3: $KeyOf<$ValOf<V, K2>>>(
|
---|
818 | keyPath: [K, K2, K3]
|
---|
819 | ): this;
|
---|
820 | deleteIn<
|
---|
821 | K2: $KeyOf<V>,
|
---|
822 | K3: $KeyOf<$ValOf<V, K2>>,
|
---|
823 | K4: $KeyOf<$ValOf<$ValOf<V, K2>, K3>>
|
---|
824 | >(
|
---|
825 | keyPath: [K, K2, K3, K4]
|
---|
826 | ): this;
|
---|
827 | deleteIn<
|
---|
828 | K2: $KeyOf<V>,
|
---|
829 | K3: $KeyOf<$ValOf<V, K2>>,
|
---|
830 | K4: $KeyOf<$ValOf<$ValOf<V, K2>, K3>>,
|
---|
831 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<V, K2>, K3>, K4>>
|
---|
832 | >(
|
---|
833 | keyPath: [K, K2, K3, K4, K5]
|
---|
834 | ): this;
|
---|
835 |
|
---|
836 | removeIn(keyPath: []): void;
|
---|
837 | removeIn(keyPath: [K]): this;
|
---|
838 | removeIn<K2: $KeyOf<V>>(keyPath: [K, K2]): this;
|
---|
839 | removeIn<K2: $KeyOf<V>, K3: $KeyOf<$ValOf<V, K2>>>(
|
---|
840 | keyPath: [K, K2, K3]
|
---|
841 | ): this;
|
---|
842 | removeIn<
|
---|
843 | K2: $KeyOf<V>,
|
---|
844 | K3: $KeyOf<$ValOf<V, K2>>,
|
---|
845 | K4: $KeyOf<$ValOf<$ValOf<V, K2>, K3>>
|
---|
846 | >(
|
---|
847 | keyPath: [K, K2, K3, K4]
|
---|
848 | ): this;
|
---|
849 | removeIn<
|
---|
850 | K2: $KeyOf<V>,
|
---|
851 | K3: $KeyOf<$ValOf<V, K2>>,
|
---|
852 | K4: $KeyOf<$ValOf<$ValOf<V, K2>, K3>>,
|
---|
853 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<V, K2>, K3>, K4>>
|
---|
854 | >(
|
---|
855 | keyPath: [K, K2, K3, K4, K5]
|
---|
856 | ): this;
|
---|
857 |
|
---|
858 | updateIn<U>(keyPath: [], notSetValue: mixed, updater: (value: this) => U): U;
|
---|
859 | updateIn<U>(keyPath: [], updater: (value: this) => U): U;
|
---|
860 | updateIn<NSV>(keyPath: [K], notSetValue: NSV, updater: (value: V) => V): this;
|
---|
861 | updateIn(keyPath: [K], updater: (value: V) => V): this;
|
---|
862 | updateIn<NSV, K2: $KeyOf<V>, S: $ValOf<V, K2>>(
|
---|
863 | keyPath: [K, K2],
|
---|
864 | notSetValue: NSV,
|
---|
865 | updater: (value: $ValOf<V, K2> | NSV) => S
|
---|
866 | ): this;
|
---|
867 | updateIn<K2: $KeyOf<V>, S: $ValOf<V, K2>>(
|
---|
868 | keyPath: [K, K2],
|
---|
869 | updater: (value: $ValOf<V, K2>) => S
|
---|
870 | ): this;
|
---|
871 | updateIn<
|
---|
872 | NSV,
|
---|
873 | K2: $KeyOf<V>,
|
---|
874 | K3: $KeyOf<$ValOf<V, K2>>,
|
---|
875 | S: $ValOf<$ValOf<V, K2>, K3>
|
---|
876 | >(
|
---|
877 | keyPath: [K, K2, K3],
|
---|
878 | notSetValue: NSV,
|
---|
879 | updater: (value: $ValOf<$ValOf<V, K2>, K3> | NSV) => S
|
---|
880 | ): this;
|
---|
881 | updateIn<
|
---|
882 | K2: $KeyOf<V>,
|
---|
883 | K3: $KeyOf<$ValOf<V, K2>>,
|
---|
884 | S: $ValOf<$ValOf<V, K2>, K3>
|
---|
885 | >(
|
---|
886 | keyPath: [K, K2, K3],
|
---|
887 | updater: (value: $ValOf<$ValOf<V, K2>, K3>) => S
|
---|
888 | ): this;
|
---|
889 | updateIn<
|
---|
890 | NSV,
|
---|
891 | K2: $KeyOf<V>,
|
---|
892 | K3: $KeyOf<$ValOf<V, K2>>,
|
---|
893 | K4: $KeyOf<$ValOf<$ValOf<V, K2>, K3>>,
|
---|
894 | S: $ValOf<$ValOf<$ValOf<V, K2>, K3>, K4>
|
---|
895 | >(
|
---|
896 | keyPath: [K, K2, K3, K4],
|
---|
897 | notSetValue: NSV,
|
---|
898 | updater: (value: $ValOf<$ValOf<$ValOf<V, K2>, K3>, K4> | NSV) => S
|
---|
899 | ): this;
|
---|
900 | updateIn<
|
---|
901 | K2: $KeyOf<V>,
|
---|
902 | K3: $KeyOf<$ValOf<V, K2>>,
|
---|
903 | K4: $KeyOf<$ValOf<$ValOf<V, K2>, K3>>,
|
---|
904 | S: $ValOf<$ValOf<$ValOf<V, K2>, K3>, K4>
|
---|
905 | >(
|
---|
906 | keyPath: [K, K2, K3, K4],
|
---|
907 | updater: (value: $ValOf<$ValOf<$ValOf<V, K2>, K3>, K4>) => S
|
---|
908 | ): this;
|
---|
909 | updateIn<
|
---|
910 | NSV,
|
---|
911 | K2: $KeyOf<V>,
|
---|
912 | K3: $KeyOf<$ValOf<V, K2>>,
|
---|
913 | K4: $KeyOf<$ValOf<$ValOf<V, K2>, K3>>,
|
---|
914 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<V, K2>, K3>, K4>>,
|
---|
915 | S: $ValOf<$ValOf<$ValOf<$ValOf<V, K2>, K3>, K4>, K5>
|
---|
916 | >(
|
---|
917 | keyPath: [K, K2, K3, K4, K5],
|
---|
918 | notSetValue: NSV,
|
---|
919 | updater: (
|
---|
920 | value: $ValOf<$ValOf<$ValOf<$ValOf<V, K2>, K3>, K4>, K5> | NSV
|
---|
921 | ) => S
|
---|
922 | ): this;
|
---|
923 | updateIn<
|
---|
924 | K2: $KeyOf<V>,
|
---|
925 | K3: $KeyOf<$ValOf<V, K2>>,
|
---|
926 | K4: $KeyOf<$ValOf<$ValOf<V, K2>, K3>>,
|
---|
927 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<V, K2>, K3>, K4>>,
|
---|
928 | S: $ValOf<$ValOf<$ValOf<$ValOf<V, K2>, K3>, K4>, K5>
|
---|
929 | >(
|
---|
930 | keyPath: [K, K2, K3, K4, K5],
|
---|
931 | updater: (value: $ValOf<$ValOf<$ValOf<$ValOf<V, K2>, K3>, K4>, K5>) => S
|
---|
932 | ): this;
|
---|
933 | }
|
---|
934 |
|
---|
935 | declare function isList(maybeList: mixed): boolean %checks(maybeList instanceof
|
---|
936 | List);
|
---|
937 | declare class List<+T>
|
---|
938 | extends IndexedCollection<T>
|
---|
939 | mixins UpdatableInCollection<number, T>
|
---|
940 | {
|
---|
941 | static <T>(collection?: Iterable<T>): List<T>;
|
---|
942 |
|
---|
943 | static of<T>(...values: T[]): List<T>;
|
---|
944 |
|
---|
945 | static isList: typeof isList;
|
---|
946 |
|
---|
947 | size: number;
|
---|
948 |
|
---|
949 | set<U>(index: number, value: U): List<T | U>;
|
---|
950 | delete(index: number): this;
|
---|
951 | remove(index: number): this;
|
---|
952 | insert<U>(index: number, value: U): List<T | U>;
|
---|
953 | clear(): this;
|
---|
954 | push<U>(...values: U[]): List<T | U>;
|
---|
955 | pop(): this;
|
---|
956 | unshift<U>(...values: U[]): List<T | U>;
|
---|
957 | shift(): this;
|
---|
958 |
|
---|
959 | update<U>(updater: (value: this) => U): U;
|
---|
960 | update<U>(index: number, updater: (value: T) => U): List<T | U>;
|
---|
961 | update<U>(
|
---|
962 | index: number,
|
---|
963 | notSetValue: U,
|
---|
964 | updater: (value: T) => U
|
---|
965 | ): List<T | U>;
|
---|
966 |
|
---|
967 | merge<U>(...collections: Iterable<U>[]): List<T | U>;
|
---|
968 |
|
---|
969 | setSize(size: number): this;
|
---|
970 |
|
---|
971 | mergeIn(keyPath: Iterable<mixed>, ...collections: Iterable<mixed>[]): this;
|
---|
972 | mergeDeepIn(
|
---|
973 | keyPath: Iterable<mixed>,
|
---|
974 | ...collections: Iterable<mixed>[]
|
---|
975 | ): this;
|
---|
976 |
|
---|
977 | withMutations(mutator: (mutable: this) => mixed): this;
|
---|
978 | asMutable(): this;
|
---|
979 | wasAltered(): boolean;
|
---|
980 | asImmutable(): this;
|
---|
981 |
|
---|
982 | // Override specialized return types
|
---|
983 |
|
---|
984 | concat<C>(...iters: Array<Iterable<C> | C>): List<T | C>;
|
---|
985 |
|
---|
986 | filter(predicate: typeof Boolean): List<$NonMaybeType<T>>;
|
---|
987 | filter(
|
---|
988 | predicate: (value: T, index: number, iter: this) => mixed,
|
---|
989 | context?: mixed
|
---|
990 | ): List<T>;
|
---|
991 |
|
---|
992 | partition(
|
---|
993 | predicate: (value: T, index: number, iter: this) => mixed,
|
---|
994 | context?: mixed
|
---|
995 | ): [this, this];
|
---|
996 |
|
---|
997 | map<M>(
|
---|
998 | mapper: (value: T, index: number, iter: this) => M,
|
---|
999 | context?: mixed
|
---|
1000 | ): List<M>;
|
---|
1001 |
|
---|
1002 | flatMap<M>(
|
---|
1003 | mapper: (value: T, index: number, iter: this) => Iterable<M>,
|
---|
1004 | context?: mixed
|
---|
1005 | ): List<M>;
|
---|
1006 |
|
---|
1007 | flatten(depth?: number): List<any>;
|
---|
1008 | flatten(shallow?: boolean): List<any>;
|
---|
1009 |
|
---|
1010 | zip<A>(a: Iterable<A>, ..._: []): List<[T, A]>;
|
---|
1011 | zip<A, B>(a: Iterable<A>, b: Iterable<B>, ..._: []): List<[T, A, B]>;
|
---|
1012 | zip<A, B, C>(
|
---|
1013 | a: Iterable<A>,
|
---|
1014 | b: Iterable<B>,
|
---|
1015 | c: Iterable<C>,
|
---|
1016 | ..._: []
|
---|
1017 | ): List<[T, A, B, C]>;
|
---|
1018 | zip<A, B, C, D>(
|
---|
1019 | a: Iterable<A>,
|
---|
1020 | b: Iterable<B>,
|
---|
1021 | c: Iterable<C>,
|
---|
1022 | d: Iterable<D>,
|
---|
1023 | ..._: []
|
---|
1024 | ): List<[T, A, B, C, D]>;
|
---|
1025 | zip<A, B, C, D, E>(
|
---|
1026 | a: Iterable<A>,
|
---|
1027 | b: Iterable<B>,
|
---|
1028 | c: Iterable<C>,
|
---|
1029 | d: Iterable<D>,
|
---|
1030 | e: Iterable<E>,
|
---|
1031 | ..._: []
|
---|
1032 | ): List<[T, A, B, C, D, E]>;
|
---|
1033 |
|
---|
1034 | zipAll<A>(a: Iterable<A>, ..._: []): List<[T | void, A | void]>;
|
---|
1035 | zipAll<A, B>(
|
---|
1036 | a: Iterable<A>,
|
---|
1037 | b: Iterable<B>,
|
---|
1038 | ..._: []
|
---|
1039 | ): List<[T | void, A | void, B | void]>;
|
---|
1040 | zipAll<A, B, C>(
|
---|
1041 | a: Iterable<A>,
|
---|
1042 | b: Iterable<B>,
|
---|
1043 | c: Iterable<C>,
|
---|
1044 | ..._: []
|
---|
1045 | ): List<[T | void, A | void, B | void, C | void]>;
|
---|
1046 | zipAll<A, B, C, D>(
|
---|
1047 | a: Iterable<A>,
|
---|
1048 | b: Iterable<B>,
|
---|
1049 | c: Iterable<C>,
|
---|
1050 | d: Iterable<D>,
|
---|
1051 | ..._: []
|
---|
1052 | ): List<[T | void, A | void, B | void, C | void, D | void]>;
|
---|
1053 | zipAll<A, B, C, D, E>(
|
---|
1054 | a: Iterable<A>,
|
---|
1055 | b: Iterable<B>,
|
---|
1056 | c: Iterable<C>,
|
---|
1057 | d: Iterable<D>,
|
---|
1058 | e: Iterable<E>,
|
---|
1059 | ..._: []
|
---|
1060 | ): List<[T | void, A | void, B | void, C | void, D | void, E | void]>;
|
---|
1061 |
|
---|
1062 | zipWith<A, R>(
|
---|
1063 | zipper: (value: T, a: A) => R,
|
---|
1064 | a: Iterable<A>,
|
---|
1065 | ..._: []
|
---|
1066 | ): List<R>;
|
---|
1067 | zipWith<A, B, R>(
|
---|
1068 | zipper: (value: T, a: A, b: B) => R,
|
---|
1069 | a: Iterable<A>,
|
---|
1070 | b: Iterable<B>,
|
---|
1071 | ..._: []
|
---|
1072 | ): List<R>;
|
---|
1073 | zipWith<A, B, C, R>(
|
---|
1074 | zipper: (value: T, a: A, b: B, c: C) => R,
|
---|
1075 | a: Iterable<A>,
|
---|
1076 | b: Iterable<B>,
|
---|
1077 | c: Iterable<C>,
|
---|
1078 | ..._: []
|
---|
1079 | ): List<R>;
|
---|
1080 | zipWith<A, B, C, D, R>(
|
---|
1081 | zipper: (value: T, a: A, b: B, c: C, d: D) => R,
|
---|
1082 | a: Iterable<A>,
|
---|
1083 | b: Iterable<B>,
|
---|
1084 | c: Iterable<C>,
|
---|
1085 | d: Iterable<D>,
|
---|
1086 | ..._: []
|
---|
1087 | ): List<R>;
|
---|
1088 | zipWith<A, B, C, D, E, R>(
|
---|
1089 | zipper: (value: T, a: A, b: B, c: C, d: D, e: E) => R,
|
---|
1090 | a: Iterable<A>,
|
---|
1091 | b: Iterable<B>,
|
---|
1092 | c: Iterable<C>,
|
---|
1093 | d: Iterable<D>,
|
---|
1094 | e: Iterable<E>,
|
---|
1095 | ..._: []
|
---|
1096 | ): List<R>;
|
---|
1097 | }
|
---|
1098 |
|
---|
1099 | declare function isMap(maybeMap: mixed): boolean %checks(maybeMap instanceof
|
---|
1100 | Map);
|
---|
1101 | declare class Map<K, +V>
|
---|
1102 | extends KeyedCollection<K, V>
|
---|
1103 | mixins UpdatableInCollection<K, V>
|
---|
1104 | {
|
---|
1105 | static <K, V>(values?: Iterable<[K, V]> | PlainObjInput<K, V>): Map<K, V>;
|
---|
1106 |
|
---|
1107 | static isMap: typeof isMap;
|
---|
1108 |
|
---|
1109 | size: number;
|
---|
1110 |
|
---|
1111 | set<K_, V_>(key: K_, value: V_): Map<K | K_, V | V_>;
|
---|
1112 | delete(key: K): this;
|
---|
1113 | remove(key: K): this;
|
---|
1114 | clear(): this;
|
---|
1115 |
|
---|
1116 | deleteAll(keys: Iterable<K>): Map<K, V>;
|
---|
1117 | removeAll(keys: Iterable<K>): Map<K, V>;
|
---|
1118 |
|
---|
1119 | update<U>(updater: (value: this) => U): U;
|
---|
1120 | update<V_>(key: K, updater: (value: V) => V_): Map<K, V | V_>;
|
---|
1121 | update<V_>(
|
---|
1122 | key: K,
|
---|
1123 | notSetValue: V_,
|
---|
1124 | updater: (value: V) => V_
|
---|
1125 | ): Map<K, V | V_>;
|
---|
1126 |
|
---|
1127 | merge<K_, V_>(
|
---|
1128 | ...collections: (Iterable<[K_, V_]> | PlainObjInput<K_, V_>)[]
|
---|
1129 | ): Map<K | K_, V | V_>;
|
---|
1130 | concat<K_, V_>(
|
---|
1131 | ...collections: (Iterable<[K_, V_]> | PlainObjInput<K_, V_>)[]
|
---|
1132 | ): Map<K | K_, V | V_>;
|
---|
1133 |
|
---|
1134 | mergeWith<K_, W, X>(
|
---|
1135 | merger: (oldVal: V, newVal: W, key: K) => X,
|
---|
1136 | ...collections: (Iterable<[K_, W]> | PlainObjInput<K_, W>)[]
|
---|
1137 | ): Map<K | K_, V | W | X>;
|
---|
1138 |
|
---|
1139 | mergeDeep<K_, V_>(
|
---|
1140 | ...collections: (Iterable<[K_, V_]> | PlainObjInput<K_, V_>)[]
|
---|
1141 | ): Map<K | K_, V | V_>;
|
---|
1142 |
|
---|
1143 | mergeDeepWith<K_, V_>(
|
---|
1144 | merger: (oldVal: any, newVal: any, key: any) => mixed,
|
---|
1145 | ...collections: (Iterable<[K_, V_]> | PlainObjInput<K_, V_>)[]
|
---|
1146 | ): Map<K | K_, V | V_>;
|
---|
1147 |
|
---|
1148 | mergeIn(
|
---|
1149 | keyPath: Iterable<mixed>,
|
---|
1150 | ...collections: (Iterable<mixed> | PlainObjInput<mixed, mixed>)[]
|
---|
1151 | ): this;
|
---|
1152 | mergeDeepIn(
|
---|
1153 | keyPath: Iterable<mixed>,
|
---|
1154 | ...collections: (Iterable<mixed> | PlainObjInput<mixed, mixed>)[]
|
---|
1155 | ): this;
|
---|
1156 |
|
---|
1157 | withMutations(mutator: (mutable: this) => mixed): this;
|
---|
1158 | asMutable(): this;
|
---|
1159 | wasAltered(): boolean;
|
---|
1160 | asImmutable(): this;
|
---|
1161 |
|
---|
1162 | // Override specialized return types
|
---|
1163 |
|
---|
1164 | flip(): Map<V, K>;
|
---|
1165 |
|
---|
1166 | filter(predicate: typeof Boolean): Map<K, $NonMaybeType<V>>;
|
---|
1167 | filter(
|
---|
1168 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
1169 | context?: mixed
|
---|
1170 | ): Map<K, V>;
|
---|
1171 |
|
---|
1172 | partition(
|
---|
1173 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
1174 | context?: mixed
|
---|
1175 | ): [this, this];
|
---|
1176 |
|
---|
1177 | map<M>(
|
---|
1178 | mapper: (value: V, key: K, iter: this) => M,
|
---|
1179 | context?: mixed
|
---|
1180 | ): Map<K, M>;
|
---|
1181 |
|
---|
1182 | mapKeys<M>(
|
---|
1183 | mapper: (key: K, value: V, iter: this) => M,
|
---|
1184 | context?: mixed
|
---|
1185 | ): Map<M, V>;
|
---|
1186 |
|
---|
1187 | mapEntries<KM, VM>(
|
---|
1188 | mapper: (entry: [K, V], index: number, iter: this) => [KM, VM],
|
---|
1189 | context?: mixed
|
---|
1190 | ): Map<KM, VM>;
|
---|
1191 |
|
---|
1192 | flatMap<KM, VM>(
|
---|
1193 | mapper: (value: V, key: K, iter: this) => Iterable<[KM, VM]>,
|
---|
1194 | context?: mixed
|
---|
1195 | ): Map<KM, VM>;
|
---|
1196 |
|
---|
1197 | flatten(depth?: number): Map<any, any>;
|
---|
1198 | flatten(shallow?: boolean): Map<any, any>;
|
---|
1199 | }
|
---|
1200 |
|
---|
1201 | declare function isOrderedMap(
|
---|
1202 | maybeOrderedMap: mixed
|
---|
1203 | ): boolean %checks(maybeOrderedMap instanceof OrderedMap);
|
---|
1204 | declare class OrderedMap<K, +V>
|
---|
1205 | extends Map<K, V>
|
---|
1206 | mixins UpdatableInCollection<K, V>
|
---|
1207 | {
|
---|
1208 | static <K, V>(
|
---|
1209 | values?: Iterable<[K, V]> | PlainObjInput<K, V>
|
---|
1210 | ): OrderedMap<K, V>;
|
---|
1211 |
|
---|
1212 | static isOrderedMap: typeof isOrderedMap;
|
---|
1213 |
|
---|
1214 | size: number;
|
---|
1215 |
|
---|
1216 | set<K_, V_>(key: K_, value: V_): OrderedMap<K | K_, V | V_>;
|
---|
1217 | delete(key: K): this;
|
---|
1218 | remove(key: K): this;
|
---|
1219 | clear(): this;
|
---|
1220 |
|
---|
1221 | update<U>(updater: (value: this) => U): U;
|
---|
1222 | update<V_>(key: K, updater: (value: V) => V_): OrderedMap<K, V | V_>;
|
---|
1223 | update<V_>(
|
---|
1224 | key: K,
|
---|
1225 | notSetValue: V_,
|
---|
1226 | updater: (value: V) => V_
|
---|
1227 | ): OrderedMap<K, V | V_>;
|
---|
1228 |
|
---|
1229 | merge<K_, V_>(
|
---|
1230 | ...collections: (Iterable<[K_, V_]> | PlainObjInput<K_, V_>)[]
|
---|
1231 | ): OrderedMap<K | K_, V | V_>;
|
---|
1232 | concat<K_, V_>(
|
---|
1233 | ...collections: (Iterable<[K_, V_]> | PlainObjInput<K_, V_>)[]
|
---|
1234 | ): OrderedMap<K | K_, V | V_>;
|
---|
1235 |
|
---|
1236 | mergeWith<K_, W, X>(
|
---|
1237 | merger: (oldVal: V, newVal: W, key: K) => X,
|
---|
1238 | ...collections: (Iterable<[K_, W]> | PlainObjInput<K_, W>)[]
|
---|
1239 | ): OrderedMap<K | K_, V | W | X>;
|
---|
1240 |
|
---|
1241 | mergeDeep<K_, V_>(
|
---|
1242 | ...collections: (Iterable<[K_, V_]> | PlainObjInput<K_, V_>)[]
|
---|
1243 | ): OrderedMap<K | K_, V | V_>;
|
---|
1244 |
|
---|
1245 | mergeDeepWith<K_, V_>(
|
---|
1246 | merger: (oldVal: any, newVal: any, key: any) => mixed,
|
---|
1247 | ...collections: (Iterable<[K_, V_]> | PlainObjInput<K_, V_>)[]
|
---|
1248 | ): OrderedMap<K | K_, V | V_>;
|
---|
1249 |
|
---|
1250 | mergeIn(
|
---|
1251 | keyPath: Iterable<mixed>,
|
---|
1252 | ...collections: (Iterable<mixed> | PlainObjInput<mixed, mixed>)[]
|
---|
1253 | ): this;
|
---|
1254 | mergeDeepIn(
|
---|
1255 | keyPath: Iterable<mixed>,
|
---|
1256 | ...collections: (Iterable<mixed> | PlainObjInput<mixed, mixed>)[]
|
---|
1257 | ): this;
|
---|
1258 |
|
---|
1259 | withMutations(mutator: (mutable: this) => mixed): this;
|
---|
1260 | asMutable(): this;
|
---|
1261 | wasAltered(): boolean;
|
---|
1262 | asImmutable(): this;
|
---|
1263 |
|
---|
1264 | // Override specialized return types
|
---|
1265 |
|
---|
1266 | flip(): OrderedMap<V, K>;
|
---|
1267 |
|
---|
1268 | filter(predicate: typeof Boolean): OrderedMap<K, $NonMaybeType<V>>;
|
---|
1269 | filter(
|
---|
1270 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
1271 | context?: mixed
|
---|
1272 | ): OrderedMap<K, V>;
|
---|
1273 |
|
---|
1274 | partition(
|
---|
1275 | predicate: (value: V, key: K, iter: this) => mixed,
|
---|
1276 | context?: mixed
|
---|
1277 | ): [this, this];
|
---|
1278 |
|
---|
1279 | map<M>(
|
---|
1280 | mapper: (value: V, key: K, iter: this) => M,
|
---|
1281 | context?: mixed
|
---|
1282 | ): OrderedMap<K, M>;
|
---|
1283 |
|
---|
1284 | mapKeys<M>(
|
---|
1285 | mapper: (key: K, value: V, iter: this) => M,
|
---|
1286 | context?: mixed
|
---|
1287 | ): OrderedMap<M, V>;
|
---|
1288 |
|
---|
1289 | mapEntries<KM, VM>(
|
---|
1290 | mapper: (entry: [K, V], index: number, iter: this) => [KM, VM],
|
---|
1291 | context?: mixed
|
---|
1292 | ): OrderedMap<KM, VM>;
|
---|
1293 |
|
---|
1294 | flatMap<KM, VM>(
|
---|
1295 | mapper: (value: V, key: K, iter: this) => Iterable<[KM, VM]>,
|
---|
1296 | context?: mixed
|
---|
1297 | ): OrderedMap<KM, VM>;
|
---|
1298 |
|
---|
1299 | flatten(depth?: number): OrderedMap<any, any>;
|
---|
1300 | flatten(shallow?: boolean): OrderedMap<any, any>;
|
---|
1301 | }
|
---|
1302 |
|
---|
1303 | declare function isSet(maybeSet: mixed): boolean %checks(maybeSet instanceof
|
---|
1304 | Set);
|
---|
1305 | declare class Set<+T> extends SetCollection<T> {
|
---|
1306 | static <T>(values?: Iterable<T>): Set<T>;
|
---|
1307 |
|
---|
1308 | static of<T>(...values: T[]): Set<T>;
|
---|
1309 | static fromKeys<T>(
|
---|
1310 | values: Iterable<[T, mixed]> | PlainObjInput<T, mixed>
|
---|
1311 | ): Set<T>;
|
---|
1312 |
|
---|
1313 | static intersect<T>(sets: Iterable<Iterable<T>>): Set<T>;
|
---|
1314 | static union<T>(sets: Iterable<Iterable<T>>): Set<T>;
|
---|
1315 |
|
---|
1316 | static isSet: typeof isSet;
|
---|
1317 |
|
---|
1318 | size: number;
|
---|
1319 |
|
---|
1320 | add<U>(value: U): Set<T | U>;
|
---|
1321 | delete(value: T): this;
|
---|
1322 | remove(value: T): this;
|
---|
1323 | clear(): this;
|
---|
1324 | union<U>(...collections: Iterable<U>[]): Set<T | U>;
|
---|
1325 | merge<U>(...collections: Iterable<U>[]): Set<T | U>;
|
---|
1326 | concat<U>(...collections: Iterable<U>[]): Set<T | U>;
|
---|
1327 | intersect<U>(...collections: Iterable<U>[]): Set<T & U>;
|
---|
1328 | subtract(...collections: Iterable<mixed>[]): this;
|
---|
1329 |
|
---|
1330 | withMutations(mutator: (mutable: this) => mixed): this;
|
---|
1331 | asMutable(): this;
|
---|
1332 | wasAltered(): boolean;
|
---|
1333 | asImmutable(): this;
|
---|
1334 |
|
---|
1335 | // Override specialized return types
|
---|
1336 |
|
---|
1337 | filter(predicate: typeof Boolean): Set<$NonMaybeType<T>>;
|
---|
1338 | filter(
|
---|
1339 | predicate: (value: T, value: T, iter: this) => mixed,
|
---|
1340 | context?: mixed
|
---|
1341 | ): Set<T>;
|
---|
1342 |
|
---|
1343 | partition(
|
---|
1344 | predicate: (value: T, value: T, iter: this) => mixed,
|
---|
1345 | context?: mixed
|
---|
1346 | ): [this, this];
|
---|
1347 |
|
---|
1348 | map<M>(
|
---|
1349 | mapper: (value: T, value: T, iter: this) => M,
|
---|
1350 | context?: mixed
|
---|
1351 | ): Set<M>;
|
---|
1352 |
|
---|
1353 | flatMap<M>(
|
---|
1354 | mapper: (value: T, value: T, iter: this) => Iterable<M>,
|
---|
1355 | context?: mixed
|
---|
1356 | ): Set<M>;
|
---|
1357 |
|
---|
1358 | flatten(depth?: number): Set<any>;
|
---|
1359 | flatten(shallow?: boolean): Set<any>;
|
---|
1360 | }
|
---|
1361 |
|
---|
1362 | // Overrides except for `isOrderedSet` are for specialized return types
|
---|
1363 | declare function isOrderedSet(
|
---|
1364 | maybeOrderedSet: mixed
|
---|
1365 | ): boolean %checks(maybeOrderedSet instanceof OrderedSet);
|
---|
1366 | declare class OrderedSet<+T> extends Set<T> {
|
---|
1367 | static <T>(values?: Iterable<T>): OrderedSet<T>;
|
---|
1368 |
|
---|
1369 | static of<T>(...values: T[]): OrderedSet<T>;
|
---|
1370 | static fromKeys<T>(
|
---|
1371 | values: Iterable<[T, mixed]> | PlainObjInput<T, mixed>
|
---|
1372 | ): OrderedSet<T>;
|
---|
1373 |
|
---|
1374 | static isOrderedSet: typeof isOrderedSet;
|
---|
1375 |
|
---|
1376 | size: number;
|
---|
1377 |
|
---|
1378 | add<U>(value: U): OrderedSet<T | U>;
|
---|
1379 | union<U>(...collections: Iterable<U>[]): OrderedSet<T | U>;
|
---|
1380 | merge<U>(...collections: Iterable<U>[]): OrderedSet<T | U>;
|
---|
1381 | concat<U>(...collections: Iterable<U>[]): OrderedSet<T | U>;
|
---|
1382 | intersect<U>(...collections: Iterable<U>[]): OrderedSet<T & U>;
|
---|
1383 |
|
---|
1384 | filter(predicate: typeof Boolean): OrderedSet<$NonMaybeType<T>>;
|
---|
1385 | filter(
|
---|
1386 | predicate: (value: T, value: T, iter: this) => mixed,
|
---|
1387 | context?: mixed
|
---|
1388 | ): OrderedSet<T>;
|
---|
1389 |
|
---|
1390 | partition(
|
---|
1391 | predicate: (value: T, value: T, iter: this) => mixed,
|
---|
1392 | context?: mixed
|
---|
1393 | ): [this, this];
|
---|
1394 |
|
---|
1395 | map<M>(
|
---|
1396 | mapper: (value: T, value: T, iter: this) => M,
|
---|
1397 | context?: mixed
|
---|
1398 | ): OrderedSet<M>;
|
---|
1399 |
|
---|
1400 | flatMap<M>(
|
---|
1401 | mapper: (value: T, value: T, iter: this) => Iterable<M>,
|
---|
1402 | context?: mixed
|
---|
1403 | ): OrderedSet<M>;
|
---|
1404 |
|
---|
1405 | flatten(depth?: number): OrderedSet<any>;
|
---|
1406 | flatten(shallow?: boolean): OrderedSet<any>;
|
---|
1407 |
|
---|
1408 | zip<A>(a: Iterable<A>, ..._: []): OrderedSet<[T, A]>;
|
---|
1409 | zip<A, B>(a: Iterable<A>, b: Iterable<B>, ..._: []): OrderedSet<[T, A, B]>;
|
---|
1410 | zip<A, B, C>(
|
---|
1411 | a: Iterable<A>,
|
---|
1412 | b: Iterable<B>,
|
---|
1413 | c: Iterable<C>,
|
---|
1414 | ..._: []
|
---|
1415 | ): OrderedSet<[T, A, B, C]>;
|
---|
1416 | zip<A, B, C, D>(
|
---|
1417 | a: Iterable<A>,
|
---|
1418 | b: Iterable<B>,
|
---|
1419 | c: Iterable<C>,
|
---|
1420 | d: Iterable<D>,
|
---|
1421 | ..._: []
|
---|
1422 | ): OrderedSet<[T, A, B, C, D]>;
|
---|
1423 | zip<A, B, C, D, E>(
|
---|
1424 | a: Iterable<A>,
|
---|
1425 | b: Iterable<B>,
|
---|
1426 | c: Iterable<C>,
|
---|
1427 | d: Iterable<D>,
|
---|
1428 | e: Iterable<E>,
|
---|
1429 | ..._: []
|
---|
1430 | ): OrderedSet<[T, A, B, C, D, E]>;
|
---|
1431 |
|
---|
1432 | zipAll<A>(a: Iterable<A>, ..._: []): OrderedSet<[T | void, A | void]>;
|
---|
1433 | zipAll<A, B>(
|
---|
1434 | a: Iterable<A>,
|
---|
1435 | b: Iterable<B>,
|
---|
1436 | ..._: []
|
---|
1437 | ): OrderedSet<[T | void, A | void, B | void]>;
|
---|
1438 | zipAll<A, B, C>(
|
---|
1439 | a: Iterable<A>,
|
---|
1440 | b: Iterable<B>,
|
---|
1441 | c: Iterable<C>,
|
---|
1442 | ..._: []
|
---|
1443 | ): OrderedSet<[T | void, A | void, B | void, C | void]>;
|
---|
1444 | zipAll<A, B, C, D>(
|
---|
1445 | a: Iterable<A>,
|
---|
1446 | b: Iterable<B>,
|
---|
1447 | c: Iterable<C>,
|
---|
1448 | d: Iterable<D>,
|
---|
1449 | ..._: []
|
---|
1450 | ): OrderedSet<[T | void, A | void, B | void, C | void, D | void]>;
|
---|
1451 | zipAll<A, B, C, D, E>(
|
---|
1452 | a: Iterable<A>,
|
---|
1453 | b: Iterable<B>,
|
---|
1454 | c: Iterable<C>,
|
---|
1455 | d: Iterable<D>,
|
---|
1456 | e: Iterable<E>,
|
---|
1457 | ..._: []
|
---|
1458 | ): OrderedSet<[T | void, A | void, B | void, C | void, D | void, E | void]>;
|
---|
1459 |
|
---|
1460 | zipWith<A, R>(
|
---|
1461 | zipper: (value: T, a: A) => R,
|
---|
1462 | a: Iterable<A>,
|
---|
1463 | ..._: []
|
---|
1464 | ): OrderedSet<R>;
|
---|
1465 | zipWith<A, B, R>(
|
---|
1466 | zipper: (value: T, a: A, b: B) => R,
|
---|
1467 | a: Iterable<A>,
|
---|
1468 | b: Iterable<B>,
|
---|
1469 | ..._: []
|
---|
1470 | ): OrderedSet<R>;
|
---|
1471 | zipWith<A, B, C, R>(
|
---|
1472 | zipper: (value: T, a: A, b: B, c: C) => R,
|
---|
1473 | a: Iterable<A>,
|
---|
1474 | b: Iterable<B>,
|
---|
1475 | c: Iterable<C>,
|
---|
1476 | ..._: []
|
---|
1477 | ): OrderedSet<R>;
|
---|
1478 | zipWith<A, B, C, D, R>(
|
---|
1479 | zipper: (value: T, a: A, b: B, c: C, d: D) => R,
|
---|
1480 | a: Iterable<A>,
|
---|
1481 | b: Iterable<B>,
|
---|
1482 | c: Iterable<C>,
|
---|
1483 | d: Iterable<D>,
|
---|
1484 | ..._: []
|
---|
1485 | ): OrderedSet<R>;
|
---|
1486 | zipWith<A, B, C, D, E, R>(
|
---|
1487 | zipper: (value: T, a: A, b: B, c: C, d: D, e: E) => R,
|
---|
1488 | a: Iterable<A>,
|
---|
1489 | b: Iterable<B>,
|
---|
1490 | c: Iterable<C>,
|
---|
1491 | d: Iterable<D>,
|
---|
1492 | e: Iterable<E>,
|
---|
1493 | ..._: []
|
---|
1494 | ): OrderedSet<R>;
|
---|
1495 | }
|
---|
1496 |
|
---|
1497 | declare function isStack(
|
---|
1498 | maybeStack: mixed
|
---|
1499 | ): boolean %checks(maybeStack instanceof Stack);
|
---|
1500 | declare class Stack<+T> extends IndexedCollection<T> {
|
---|
1501 | static <T>(collection?: Iterable<T>): Stack<T>;
|
---|
1502 |
|
---|
1503 | static isStack(maybeStack: mixed): boolean;
|
---|
1504 | static of<T>(...values: T[]): Stack<T>;
|
---|
1505 |
|
---|
1506 | static isStack: typeof isStack;
|
---|
1507 |
|
---|
1508 | size: number;
|
---|
1509 |
|
---|
1510 | peek(): T;
|
---|
1511 | clear(): this;
|
---|
1512 | unshift<U>(...values: U[]): Stack<T | U>;
|
---|
1513 | unshiftAll<U>(iter: Iterable<U>): Stack<T | U>;
|
---|
1514 | shift(): this;
|
---|
1515 | push<U>(...values: U[]): Stack<T | U>;
|
---|
1516 | pushAll<U>(iter: Iterable<U>): Stack<T | U>;
|
---|
1517 | pop(): this;
|
---|
1518 |
|
---|
1519 | withMutations(mutator: (mutable: this) => mixed): this;
|
---|
1520 | asMutable(): this;
|
---|
1521 | wasAltered(): boolean;
|
---|
1522 | asImmutable(): this;
|
---|
1523 |
|
---|
1524 | // Override specialized return types
|
---|
1525 |
|
---|
1526 | concat<C>(...iters: Array<Iterable<C> | C>): Stack<T | C>;
|
---|
1527 |
|
---|
1528 | filter(predicate: typeof Boolean): Stack<$NonMaybeType<T>>;
|
---|
1529 | filter(
|
---|
1530 | predicate: (value: T, index: number, iter: this) => mixed,
|
---|
1531 | context?: mixed
|
---|
1532 | ): Stack<T>;
|
---|
1533 |
|
---|
1534 | map<M>(
|
---|
1535 | mapper: (value: T, index: number, iter: this) => M,
|
---|
1536 | context?: mixed
|
---|
1537 | ): Stack<M>;
|
---|
1538 |
|
---|
1539 | flatMap<M>(
|
---|
1540 | mapper: (value: T, index: number, iter: this) => Iterable<M>,
|
---|
1541 | context?: mixed
|
---|
1542 | ): Stack<M>;
|
---|
1543 |
|
---|
1544 | flatten(depth?: number): Stack<any>;
|
---|
1545 | flatten(shallow?: boolean): Stack<any>;
|
---|
1546 |
|
---|
1547 | zip<A>(a: Iterable<A>, ..._: []): Stack<[T, A]>;
|
---|
1548 | zip<A, B>(a: Iterable<A>, b: Iterable<B>, ..._: []): Stack<[T, A, B]>;
|
---|
1549 | zip<A, B, C>(
|
---|
1550 | a: Iterable<A>,
|
---|
1551 | b: Iterable<B>,
|
---|
1552 | c: Iterable<C>,
|
---|
1553 | ..._: []
|
---|
1554 | ): Stack<[T, A, B, C]>;
|
---|
1555 | zip<A, B, C, D>(
|
---|
1556 | a: Iterable<A>,
|
---|
1557 | b: Iterable<B>,
|
---|
1558 | c: Iterable<C>,
|
---|
1559 | d: Iterable<D>,
|
---|
1560 | ..._: []
|
---|
1561 | ): Stack<[T, A, B, C, D]>;
|
---|
1562 | zip<A, B, C, D, E>(
|
---|
1563 | a: Iterable<A>,
|
---|
1564 | b: Iterable<B>,
|
---|
1565 | c: Iterable<C>,
|
---|
1566 | d: Iterable<D>,
|
---|
1567 | e: Iterable<E>,
|
---|
1568 | ..._: []
|
---|
1569 | ): Stack<[T, A, B, C, D, E]>;
|
---|
1570 |
|
---|
1571 | zipAll<A>(a: Iterable<A>, ..._: []): Stack<[T | void, A | void]>;
|
---|
1572 | zipAll<A, B>(
|
---|
1573 | a: Iterable<A>,
|
---|
1574 | b: Iterable<B>,
|
---|
1575 | ..._: []
|
---|
1576 | ): Stack<[T | void, A | void, B | void]>;
|
---|
1577 | zipAll<A, B, C>(
|
---|
1578 | a: Iterable<A>,
|
---|
1579 | b: Iterable<B>,
|
---|
1580 | c: Iterable<C>,
|
---|
1581 | ..._: []
|
---|
1582 | ): Stack<[T | void, A | void, B | void, C | void]>;
|
---|
1583 | zipAll<A, B, C, D>(
|
---|
1584 | a: Iterable<A>,
|
---|
1585 | b: Iterable<B>,
|
---|
1586 | c: Iterable<C>,
|
---|
1587 | d: Iterable<D>,
|
---|
1588 | ..._: []
|
---|
1589 | ): Stack<[T | void, A | void, B | void, C | void, D | void]>;
|
---|
1590 | zipAll<A, B, C, D, E>(
|
---|
1591 | a: Iterable<A>,
|
---|
1592 | b: Iterable<B>,
|
---|
1593 | c: Iterable<C>,
|
---|
1594 | d: Iterable<D>,
|
---|
1595 | e: Iterable<E>,
|
---|
1596 | ..._: []
|
---|
1597 | ): Stack<[T | void, A | void, B | void, C | void, D | void, E | void]>;
|
---|
1598 |
|
---|
1599 | zipWith<A, R>(
|
---|
1600 | zipper: (value: T, a: A) => R,
|
---|
1601 | a: Iterable<A>,
|
---|
1602 | ..._: []
|
---|
1603 | ): Stack<R>;
|
---|
1604 | zipWith<A, B, R>(
|
---|
1605 | zipper: (value: T, a: A, b: B) => R,
|
---|
1606 | a: Iterable<A>,
|
---|
1607 | b: Iterable<B>,
|
---|
1608 | ..._: []
|
---|
1609 | ): Stack<R>;
|
---|
1610 | zipWith<A, B, C, R>(
|
---|
1611 | zipper: (value: T, a: A, b: B, c: C) => R,
|
---|
1612 | a: Iterable<A>,
|
---|
1613 | b: Iterable<B>,
|
---|
1614 | c: Iterable<C>,
|
---|
1615 | ..._: []
|
---|
1616 | ): Stack<R>;
|
---|
1617 | zipWith<A, B, C, D, R>(
|
---|
1618 | zipper: (value: T, a: A, b: B, c: C, d: D) => R,
|
---|
1619 | a: Iterable<A>,
|
---|
1620 | b: Iterable<B>,
|
---|
1621 | c: Iterable<C>,
|
---|
1622 | d: Iterable<D>,
|
---|
1623 | ..._: []
|
---|
1624 | ): Stack<R>;
|
---|
1625 | zipWith<A, B, C, D, E, R>(
|
---|
1626 | zipper: (value: T, a: A, b: B, c: C, d: D, e: E) => R,
|
---|
1627 | a: Iterable<A>,
|
---|
1628 | b: Iterable<B>,
|
---|
1629 | c: Iterable<C>,
|
---|
1630 | d: Iterable<D>,
|
---|
1631 | e: Iterable<E>,
|
---|
1632 | ..._: []
|
---|
1633 | ): Stack<R>;
|
---|
1634 | }
|
---|
1635 |
|
---|
1636 | declare function Range(
|
---|
1637 | start?: number,
|
---|
1638 | end?: number,
|
---|
1639 | step?: number
|
---|
1640 | ): IndexedSeq<number>;
|
---|
1641 | declare function Repeat<T>(value: T, times?: number): IndexedSeq<T>;
|
---|
1642 |
|
---|
1643 | // The type of a Record factory function.
|
---|
1644 | type RecordFactory<Values: Object> = Class<RecordInstance<Values>>;
|
---|
1645 |
|
---|
1646 | // The type of runtime Record instances.
|
---|
1647 | type RecordOf<Values: Object> = RecordInstance<Values> & $ReadOnly<Values>;
|
---|
1648 |
|
---|
1649 | // The values of a Record instance.
|
---|
1650 | type _RecordValues<T, R: RecordInstance<T> | T> = R;
|
---|
1651 | type RecordValues<R> = _RecordValues<*, R>;
|
---|
1652 |
|
---|
1653 | declare function isRecord(
|
---|
1654 | maybeRecord: any
|
---|
1655 | ): boolean %checks(maybeRecord instanceof RecordInstance);
|
---|
1656 | declare class Record {
|
---|
1657 | static <Values: Object>(spec: Values, name?: string): typeof RecordInstance;
|
---|
1658 | constructor<Values: Object>(
|
---|
1659 | spec: Values,
|
---|
1660 | name?: string
|
---|
1661 | ): typeof RecordInstance;
|
---|
1662 |
|
---|
1663 | static isRecord: typeof isRecord;
|
---|
1664 |
|
---|
1665 | static getDescriptiveName(record: RecordInstance<any>): string;
|
---|
1666 | }
|
---|
1667 |
|
---|
1668 | declare class RecordInstance<T: Object = Object> {
|
---|
1669 | static (values?: Iterable<[$Keys<T>, $ValOf<T>]> | $Shape<T>): RecordOf<T>;
|
---|
1670 | // Note: a constructor can only create an instance of RecordInstance<T>,
|
---|
1671 | // it's encouraged to not use `new` when creating Records.
|
---|
1672 | constructor(values?: Iterable<[$Keys<T>, $ValOf<T>]> | $Shape<T>): void;
|
---|
1673 |
|
---|
1674 | size: number;
|
---|
1675 |
|
---|
1676 | has(key: string): boolean;
|
---|
1677 |
|
---|
1678 | get<K: $Keys<T>>(key: K, ..._: []): $ElementType<T, K>;
|
---|
1679 | get<K: $Keys<T>, NSV>(key: K, notSetValue: NSV): $ElementType<T, K> | NSV;
|
---|
1680 |
|
---|
1681 | hasIn(keyPath: Iterable<mixed>): boolean;
|
---|
1682 |
|
---|
1683 | getIn(keyPath: [], notSetValue?: mixed): this & $ReadOnly<T>;
|
---|
1684 | getIn<K: $Keys<T>>(keyPath: [K], notSetValue?: mixed): $ElementType<T, K>;
|
---|
1685 | getIn<NSV, K: $Keys<T>, K2: $KeyOf<$ValOf<T, K>>>(
|
---|
1686 | keyPath: [K, K2],
|
---|
1687 | notSetValue: NSV
|
---|
1688 | ): $ValOf<$ValOf<T, K>, K2> | NSV;
|
---|
1689 | getIn<
|
---|
1690 | NSV,
|
---|
1691 | K: $Keys<T>,
|
---|
1692 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1693 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>
|
---|
1694 | >(
|
---|
1695 | keyPath: [K, K2, K3],
|
---|
1696 | notSetValue: NSV
|
---|
1697 | ): $ValOf<$ValOf<$ValOf<T, K>, K2>, K3> | NSV;
|
---|
1698 | getIn<
|
---|
1699 | NSV,
|
---|
1700 | K: $Keys<T>,
|
---|
1701 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1702 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>,
|
---|
1703 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>>
|
---|
1704 | >(
|
---|
1705 | keyPath: [K, K2, K3, K4],
|
---|
1706 | notSetValue: NSV
|
---|
1707 | ): $ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4> | NSV;
|
---|
1708 | getIn<
|
---|
1709 | NSV,
|
---|
1710 | K: $Keys<T>,
|
---|
1711 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1712 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>,
|
---|
1713 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>>,
|
---|
1714 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4>>
|
---|
1715 | >(
|
---|
1716 | keyPath: [K, K2, K3, K4, K5],
|
---|
1717 | notSetValue: NSV
|
---|
1718 | ): $ValOf<$ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4>, K5> | NSV;
|
---|
1719 |
|
---|
1720 | equals(other: any): boolean;
|
---|
1721 | hashCode(): number;
|
---|
1722 |
|
---|
1723 | set<K: $Keys<T>>(key: K, value: $ElementType<T, K>): this & $ReadOnly<T>;
|
---|
1724 | update<K: $Keys<T>>(
|
---|
1725 | key: K,
|
---|
1726 | updater: (value: $ElementType<T, K>) => $ElementType<T, K>
|
---|
1727 | ): this & $ReadOnly<T>;
|
---|
1728 | merge(
|
---|
1729 | ...collections: Array<Iterable<[$Keys<T>, $ValOf<T>]> | $Shape<T>>
|
---|
1730 | ): this & $ReadOnly<T>;
|
---|
1731 | mergeDeep(
|
---|
1732 | ...collections: Array<Iterable<[$Keys<T>, $ValOf<T>]> | $Shape<T>>
|
---|
1733 | ): this & $ReadOnly<T>;
|
---|
1734 |
|
---|
1735 | mergeWith(
|
---|
1736 | merger: (oldVal: $ValOf<T>, newVal: $ValOf<T>, key: $Keys<T>) => $ValOf<T>,
|
---|
1737 | ...collections: Array<Iterable<[$Keys<T>, $ValOf<T>]> | $Shape<T>>
|
---|
1738 | ): this & $ReadOnly<T>;
|
---|
1739 | mergeDeepWith(
|
---|
1740 | merger: (oldVal: any, newVal: any, key: any) => any,
|
---|
1741 | ...collections: Array<Iterable<[$Keys<T>, $ValOf<T>]> | $Shape<T>>
|
---|
1742 | ): this & $ReadOnly<T>;
|
---|
1743 |
|
---|
1744 | delete<K: $Keys<T>>(key: K): this & $ReadOnly<T>;
|
---|
1745 | remove<K: $Keys<T>>(key: K): this & $ReadOnly<T>;
|
---|
1746 | clear(): this & $ReadOnly<T>;
|
---|
1747 |
|
---|
1748 | setIn<S>(keyPath: [], value: S): S;
|
---|
1749 | setIn<K: $Keys<T>, S: $ValOf<T, K>>(
|
---|
1750 | keyPath: [K],
|
---|
1751 | value: S
|
---|
1752 | ): this & $ReadOnly<T>;
|
---|
1753 | setIn<K: $Keys<T>, K2: $KeyOf<$ValOf<T, K>>, S: $ValOf<$ValOf<T, K>, K2>>(
|
---|
1754 | keyPath: [K, K2],
|
---|
1755 | value: S
|
---|
1756 | ): this & $ReadOnly<T>;
|
---|
1757 | setIn<
|
---|
1758 | K: $Keys<T>,
|
---|
1759 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1760 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>,
|
---|
1761 | S: $ValOf<$ValOf<$ValOf<T, K>, K2>, K3>
|
---|
1762 | >(
|
---|
1763 | keyPath: [K, K2, K3],
|
---|
1764 | value: S
|
---|
1765 | ): this & $ReadOnly<T>;
|
---|
1766 | setIn<
|
---|
1767 | K: $Keys<T>,
|
---|
1768 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1769 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>,
|
---|
1770 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>>,
|
---|
1771 | S: $ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4>
|
---|
1772 | >(
|
---|
1773 | keyPath: [K, K2, K3, K4],
|
---|
1774 | value: S
|
---|
1775 | ): this & $ReadOnly<T>;
|
---|
1776 | setIn<
|
---|
1777 | K: $Keys<T>,
|
---|
1778 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1779 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>,
|
---|
1780 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>>,
|
---|
1781 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4>>,
|
---|
1782 | S: $ValOf<$ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4>, K5>
|
---|
1783 | >(
|
---|
1784 | keyPath: [K, K2, K3, K4, K5],
|
---|
1785 | value: S
|
---|
1786 | ): this & $ReadOnly<T>;
|
---|
1787 |
|
---|
1788 | deleteIn(keyPath: []): void;
|
---|
1789 | deleteIn<K: $Keys<T>>(keyPath: [K]): this & $ReadOnly<T>;
|
---|
1790 | deleteIn<K: $Keys<T>, K2: $KeyOf<$ValOf<T, K>>>(
|
---|
1791 | keyPath: [K, K2]
|
---|
1792 | ): this & $ReadOnly<T>;
|
---|
1793 | deleteIn<
|
---|
1794 | K: $Keys<T>,
|
---|
1795 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1796 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>
|
---|
1797 | >(
|
---|
1798 | keyPath: [K, K2, K3]
|
---|
1799 | ): this & $ReadOnly<T>;
|
---|
1800 | deleteIn<
|
---|
1801 | K: $Keys<T>,
|
---|
1802 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1803 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>,
|
---|
1804 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>>
|
---|
1805 | >(
|
---|
1806 | keyPath: [K, K2, K3, K4]
|
---|
1807 | ): this & $ReadOnly<T>;
|
---|
1808 | deleteIn<
|
---|
1809 | K: $Keys<T>,
|
---|
1810 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1811 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>,
|
---|
1812 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>>,
|
---|
1813 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4>>
|
---|
1814 | >(
|
---|
1815 | keyPath: [K, K2, K3, K4, K5]
|
---|
1816 | ): this & $ReadOnly<T>;
|
---|
1817 |
|
---|
1818 | removeIn(keyPath: []): void;
|
---|
1819 | removeIn<K: $Keys<T>>(keyPath: [K]): this & $ReadOnly<T>;
|
---|
1820 | removeIn<K: $Keys<T>, K2: $KeyOf<$ValOf<T, K>>>(
|
---|
1821 | keyPath: [K, K2]
|
---|
1822 | ): this & $ReadOnly<T>;
|
---|
1823 | removeIn<
|
---|
1824 | K: $Keys<T>,
|
---|
1825 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1826 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>
|
---|
1827 | >(
|
---|
1828 | keyPath: [K, K2, K3]
|
---|
1829 | ): this & $ReadOnly<T>;
|
---|
1830 | removeIn<
|
---|
1831 | K: $Keys<T>,
|
---|
1832 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1833 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>,
|
---|
1834 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>>
|
---|
1835 | >(
|
---|
1836 | keyPath: [K, K2, K3, K4]
|
---|
1837 | ): this & $ReadOnly<T>;
|
---|
1838 | removeIn<
|
---|
1839 | K: $Keys<T>,
|
---|
1840 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1841 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>,
|
---|
1842 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>>,
|
---|
1843 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4>>
|
---|
1844 | >(
|
---|
1845 | keyPath: [K, K2, K3, K4, K5]
|
---|
1846 | ): this & $ReadOnly<T>;
|
---|
1847 |
|
---|
1848 | updateIn<U>(
|
---|
1849 | keyPath: [],
|
---|
1850 | notSetValue: mixed,
|
---|
1851 | updater: (value: this & T) => U
|
---|
1852 | ): U;
|
---|
1853 | updateIn<U>(keyPath: [], updater: (value: this & T) => U): U;
|
---|
1854 | updateIn<NSV, K: $Keys<T>, S: $ValOf<T, K>>(
|
---|
1855 | keyPath: [K],
|
---|
1856 | notSetValue: NSV,
|
---|
1857 | updater: (value: $ValOf<T, K>) => S
|
---|
1858 | ): this & $ReadOnly<T>;
|
---|
1859 | updateIn<K: $Keys<T>, S: $ValOf<T, K>>(
|
---|
1860 | keyPath: [K],
|
---|
1861 | updater: (value: $ValOf<T, K>) => S
|
---|
1862 | ): this & $ReadOnly<T>;
|
---|
1863 | updateIn<
|
---|
1864 | NSV,
|
---|
1865 | K: $Keys<T>,
|
---|
1866 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1867 | S: $ValOf<$ValOf<T, K>, K2>
|
---|
1868 | >(
|
---|
1869 | keyPath: [K, K2],
|
---|
1870 | notSetValue: NSV,
|
---|
1871 | updater: (value: $ValOf<$ValOf<T, K>, K2> | NSV) => S
|
---|
1872 | ): this & $ReadOnly<T>;
|
---|
1873 | updateIn<K: $Keys<T>, K2: $KeyOf<$ValOf<T, K>>, S: $ValOf<$ValOf<T, K>, K2>>(
|
---|
1874 | keyPath: [K, K2],
|
---|
1875 | updater: (value: $ValOf<$ValOf<T, K>, K2>) => S
|
---|
1876 | ): this & $ReadOnly<T>;
|
---|
1877 | updateIn<
|
---|
1878 | NSV,
|
---|
1879 | K: $Keys<T>,
|
---|
1880 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1881 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>,
|
---|
1882 | S: $ValOf<$ValOf<$ValOf<T, K>, K2>, K3>
|
---|
1883 | >(
|
---|
1884 | keyPath: [K, K2, K3],
|
---|
1885 | notSetValue: NSV,
|
---|
1886 | updater: (value: $ValOf<$ValOf<$ValOf<T, K>, K2>, K3> | NSV) => S
|
---|
1887 | ): this & $ReadOnly<T>;
|
---|
1888 | updateIn<
|
---|
1889 | K: $Keys<T>,
|
---|
1890 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1891 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>,
|
---|
1892 | S: $ValOf<$ValOf<$ValOf<T, K>, K2>, K3>
|
---|
1893 | >(
|
---|
1894 | keyPath: [K, K2, K3],
|
---|
1895 | updater: (value: $ValOf<$ValOf<$ValOf<T, K>, K2>, K3>) => S
|
---|
1896 | ): this & $ReadOnly<T>;
|
---|
1897 | updateIn<
|
---|
1898 | NSV,
|
---|
1899 | K: $Keys<T>,
|
---|
1900 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1901 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>,
|
---|
1902 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>>,
|
---|
1903 | S: $ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4>
|
---|
1904 | >(
|
---|
1905 | keyPath: [K, K2, K3, K4],
|
---|
1906 | notSetValue: NSV,
|
---|
1907 | updater: (
|
---|
1908 | value: $ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4> | NSV
|
---|
1909 | ) => S
|
---|
1910 | ): this & $ReadOnly<T>;
|
---|
1911 | updateIn<
|
---|
1912 | K: $Keys<T>,
|
---|
1913 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1914 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>,
|
---|
1915 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>>,
|
---|
1916 | S: $ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4>
|
---|
1917 | >(
|
---|
1918 | keyPath: [K, K2, K3, K4],
|
---|
1919 | updater: (value: $ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4>) => S
|
---|
1920 | ): this & $ReadOnly<T>;
|
---|
1921 | updateIn<
|
---|
1922 | NSV,
|
---|
1923 | K: $Keys<T>,
|
---|
1924 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1925 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>,
|
---|
1926 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>>,
|
---|
1927 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4>>,
|
---|
1928 | S: $ValOf<$ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4>, K5>
|
---|
1929 | >(
|
---|
1930 | keyPath: [K, K2, K3, K4, K5],
|
---|
1931 | notSetValue: NSV,
|
---|
1932 | updater: (
|
---|
1933 | value: $ValOf<$ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4>, K5> | NSV
|
---|
1934 | ) => S
|
---|
1935 | ): this & $ReadOnly<T>;
|
---|
1936 | updateIn<
|
---|
1937 | K: $Keys<T>,
|
---|
1938 | K2: $KeyOf<$ValOf<T, K>>,
|
---|
1939 | K3: $KeyOf<$ValOf<$ValOf<T, K>, K2>>,
|
---|
1940 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>>,
|
---|
1941 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4>>,
|
---|
1942 | S: $ValOf<$ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4>, K5>
|
---|
1943 | >(
|
---|
1944 | keyPath: [K, K2, K3, K4, K5],
|
---|
1945 | updater: (
|
---|
1946 | value: $ValOf<$ValOf<$ValOf<$ValOf<$ValOf<T, K>, K2>, K3>, K4>, K5>
|
---|
1947 | ) => S
|
---|
1948 | ): this & $ReadOnly<T>;
|
---|
1949 |
|
---|
1950 | mergeIn(
|
---|
1951 | keyPath: Iterable<mixed>,
|
---|
1952 | ...collections: Array<any>
|
---|
1953 | ): this & $ReadOnly<T>;
|
---|
1954 | mergeDeepIn(
|
---|
1955 | keyPath: Iterable<mixed>,
|
---|
1956 | ...collections: Array<any>
|
---|
1957 | ): this & $ReadOnly<T>;
|
---|
1958 |
|
---|
1959 | toSeq(): KeyedSeq<$Keys<T>, any>;
|
---|
1960 |
|
---|
1961 | toJS(): { [key: $Keys<T>]: mixed };
|
---|
1962 | toJSON(): T;
|
---|
1963 | toObject(): T;
|
---|
1964 |
|
---|
1965 | withMutations(mutator: (mutable: this & T) => mixed): this & $ReadOnly<T>;
|
---|
1966 | asMutable(): this & $ReadOnly<T>;
|
---|
1967 | wasAltered(): boolean;
|
---|
1968 | asImmutable(): this & $ReadOnly<T>;
|
---|
1969 |
|
---|
1970 | @@iterator(): Iterator<[$Keys<T>, $ValOf<T>]>;
|
---|
1971 | }
|
---|
1972 |
|
---|
1973 | declare function fromJS(
|
---|
1974 | jsValue: mixed,
|
---|
1975 | reviver?: (
|
---|
1976 | key: string | number,
|
---|
1977 | sequence: KeyedCollection<string, mixed> | IndexedCollection<mixed>,
|
---|
1978 | path?: Array<string | number>
|
---|
1979 | ) => mixed
|
---|
1980 | ): Collection<mixed, mixed>;
|
---|
1981 |
|
---|
1982 | declare function is(first: mixed, second: mixed): boolean;
|
---|
1983 | declare function hash(value: mixed): number;
|
---|
1984 |
|
---|
1985 | declare function get<C: Object, K: $Keys<C>>(
|
---|
1986 | collection: C,
|
---|
1987 | key: K,
|
---|
1988 | notSetValue: mixed
|
---|
1989 | ): $ValOf<C, K>;
|
---|
1990 | declare function get<C, K: $KeyOf<C>, NSV>(
|
---|
1991 | collection: C,
|
---|
1992 | key: K,
|
---|
1993 | notSetValue: NSV
|
---|
1994 | ): $ValOf<C, K> | NSV;
|
---|
1995 |
|
---|
1996 | declare function has(collection: Object, key: mixed): boolean;
|
---|
1997 | declare function remove<C>(collection: C, key: $KeyOf<C>): C;
|
---|
1998 | declare function set<C, K: $KeyOf<C>, V: $ValOf<C, K>>(
|
---|
1999 | collection: C,
|
---|
2000 | key: K,
|
---|
2001 | value: V
|
---|
2002 | ): C;
|
---|
2003 | declare function update<C, K: $KeyOf<C>, V: $ValOf<C, K>, NSV>(
|
---|
2004 | collection: C,
|
---|
2005 | key: K,
|
---|
2006 | notSetValue: NSV,
|
---|
2007 | updater: ($ValOf<C, K> | NSV) => V
|
---|
2008 | ): C;
|
---|
2009 | declare function update<C, K: $KeyOf<C>, V: $ValOf<C, K>>(
|
---|
2010 | collection: C,
|
---|
2011 | key: K,
|
---|
2012 | updater: ($ValOf<C, K>) => V
|
---|
2013 | ): C;
|
---|
2014 |
|
---|
2015 | declare function getIn<C>(collection: C, keyPath: [], notSetValue?: mixed): C;
|
---|
2016 | declare function getIn<C, K: $KeyOf<C>, NSV>(
|
---|
2017 | collection: C,
|
---|
2018 | keyPath: [K],
|
---|
2019 | notSetValue: NSV
|
---|
2020 | ): $ValOf<C, K> | NSV;
|
---|
2021 | declare function getIn<C, K: $KeyOf<C>, K2: $KeyOf<$ValOf<C, K>>, NSV>(
|
---|
2022 | collection: C,
|
---|
2023 | keyPath: [K, K2],
|
---|
2024 | notSetValue: NSV
|
---|
2025 | ): $ValOf<$ValOf<C, K>, K2> | NSV;
|
---|
2026 | declare function getIn<
|
---|
2027 | C,
|
---|
2028 | K: $KeyOf<C>,
|
---|
2029 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2030 | K3: $KeyOf<$ValOf<$ValOf<C, K>, K2>>,
|
---|
2031 | NSV
|
---|
2032 | >(
|
---|
2033 | collection: C,
|
---|
2034 | keyPath: [K, K2, K3],
|
---|
2035 | notSetValue: NSV
|
---|
2036 | ): $ValOf<$ValOf<$ValOf<C, K>, K2>, K3> | NSV;
|
---|
2037 | declare function getIn<
|
---|
2038 | C,
|
---|
2039 | K: $KeyOf<C>,
|
---|
2040 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2041 | K3: $KeyOf<$ValOf<$ValOf<C, K>, K2>>,
|
---|
2042 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>>,
|
---|
2043 | NSV
|
---|
2044 | >(
|
---|
2045 | collection: C,
|
---|
2046 | keyPath: [K, K2, K3, K4],
|
---|
2047 | notSetValue: NSV
|
---|
2048 | ): $ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4> | NSV;
|
---|
2049 | declare function getIn<
|
---|
2050 | C,
|
---|
2051 | K: $KeyOf<C>,
|
---|
2052 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2053 | K3: $KeyOf<$ValOf<$ValOf<C, K>, K2>>,
|
---|
2054 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>>,
|
---|
2055 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4>>,
|
---|
2056 | NSV
|
---|
2057 | >(
|
---|
2058 | collection: C,
|
---|
2059 | keyPath: [K, K2, K3, K4, K5],
|
---|
2060 | notSetValue: NSV
|
---|
2061 | ): $ValOf<$ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4>, K5> | NSV;
|
---|
2062 |
|
---|
2063 | declare function hasIn(collection: Object, keyPath: Iterable<mixed>): boolean;
|
---|
2064 |
|
---|
2065 | declare function removeIn<C>(collection: C, keyPath: []): void;
|
---|
2066 | declare function removeIn<C, K: $KeyOf<C>>(collection: C, keyPath: [K]): C;
|
---|
2067 | declare function removeIn<C, K: $KeyOf<C>, K2: $KeyOf<$ValOf<C, K>>>(
|
---|
2068 | collection: C,
|
---|
2069 | keyPath: [K, K2]
|
---|
2070 | ): C;
|
---|
2071 | declare function removeIn<
|
---|
2072 | C,
|
---|
2073 | K: $KeyOf<C>,
|
---|
2074 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2075 | K3: $KeyOf<$ValOf<$ValOf<C, K>, K2>>
|
---|
2076 | >(
|
---|
2077 | collection: C,
|
---|
2078 | keyPath: [K, K2, K3]
|
---|
2079 | ): C;
|
---|
2080 | declare function removeIn<
|
---|
2081 | C,
|
---|
2082 | K: $KeyOf<C>,
|
---|
2083 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2084 | K3: $KeyOf<$ValOf<$ValOf<C, K>, K2>>,
|
---|
2085 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>>
|
---|
2086 | >(
|
---|
2087 | collection: C,
|
---|
2088 | keyPath: [K, K2, K3, K4]
|
---|
2089 | ): C;
|
---|
2090 | declare function removeIn<
|
---|
2091 | C,
|
---|
2092 | K: $KeyOf<C>,
|
---|
2093 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2094 | K3: $KeyOf<$ValOf<$ValOf<C, K>, K2>>,
|
---|
2095 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>>,
|
---|
2096 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4>>
|
---|
2097 | >(
|
---|
2098 | collection: C,
|
---|
2099 | keyPath: [K, K2, K3, K4, K5]
|
---|
2100 | ): C;
|
---|
2101 |
|
---|
2102 | declare function setIn<S>(collection: Object, keyPath: [], value: S): S;
|
---|
2103 | declare function setIn<C, K: $KeyOf<C>, S: $ValOf<C, K>>(
|
---|
2104 | collection: C,
|
---|
2105 | keyPath: [K],
|
---|
2106 | value: S
|
---|
2107 | ): C;
|
---|
2108 | declare function setIn<
|
---|
2109 | C,
|
---|
2110 | K: $KeyOf<C>,
|
---|
2111 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2112 | S: $ValOf<$ValOf<C, K>, K2>
|
---|
2113 | >(
|
---|
2114 | collection: C,
|
---|
2115 | keyPath: [K, K2],
|
---|
2116 | value: S
|
---|
2117 | ): C;
|
---|
2118 | declare function setIn<
|
---|
2119 | C,
|
---|
2120 | K: $KeyOf<C>,
|
---|
2121 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2122 | K3: $KeyOf<$ValOf<$ValOf<C, K>, K2>>,
|
---|
2123 | S: $ValOf<$ValOf<$ValOf<C, K>, K2>, K3>
|
---|
2124 | >(
|
---|
2125 | collection: C,
|
---|
2126 | keyPath: [K, K2, K3],
|
---|
2127 | value: S
|
---|
2128 | ): C;
|
---|
2129 | declare function setIn<
|
---|
2130 | C,
|
---|
2131 | K: $KeyOf<C>,
|
---|
2132 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2133 | K3: $KeyOf<$ValOf<$ValOf<C, K>, K2>>,
|
---|
2134 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>>,
|
---|
2135 | S: $ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4>
|
---|
2136 | >(
|
---|
2137 | collection: C,
|
---|
2138 | keyPath: [K, K2, K3, K4],
|
---|
2139 | value: S
|
---|
2140 | ): C;
|
---|
2141 | declare function setIn<
|
---|
2142 | C,
|
---|
2143 | K: $KeyOf<C>,
|
---|
2144 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2145 | K3: $KeyOf<$ValOf<$ValOf<C, K>, K2>>,
|
---|
2146 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>>,
|
---|
2147 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4>>,
|
---|
2148 | S: $ValOf<$ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4>, K5>
|
---|
2149 | >(
|
---|
2150 | collection: C,
|
---|
2151 | keyPath: [K, K2, K3, K4, K5],
|
---|
2152 | value: S
|
---|
2153 | ): C;
|
---|
2154 |
|
---|
2155 | declare function updateIn<C, S>(
|
---|
2156 | collection: C,
|
---|
2157 | keyPath: [],
|
---|
2158 | notSetValue: mixed,
|
---|
2159 | updater: (value: C) => S
|
---|
2160 | ): S;
|
---|
2161 | declare function updateIn<C, S>(
|
---|
2162 | collection: C,
|
---|
2163 | keyPath: [],
|
---|
2164 | updater: (value: C) => S
|
---|
2165 | ): S;
|
---|
2166 | declare function updateIn<C, K: $KeyOf<C>, S: $ValOf<C, K>, NSV>(
|
---|
2167 | collection: C,
|
---|
2168 | keyPath: [K],
|
---|
2169 | notSetValue: NSV,
|
---|
2170 | updater: (value: $ValOf<C, K> | NSV) => S
|
---|
2171 | ): C;
|
---|
2172 | declare function updateIn<C, K: $KeyOf<C>, S: $ValOf<C, K>>(
|
---|
2173 | collection: C,
|
---|
2174 | keyPath: [K],
|
---|
2175 | updater: (value: $ValOf<C, K>) => S
|
---|
2176 | ): C;
|
---|
2177 | declare function updateIn<
|
---|
2178 | C,
|
---|
2179 | K: $KeyOf<C>,
|
---|
2180 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2181 | S: $ValOf<$ValOf<C, K>, K2>,
|
---|
2182 | NSV
|
---|
2183 | >(
|
---|
2184 | collection: C,
|
---|
2185 | keyPath: [K, K2],
|
---|
2186 | notSetValue: NSV,
|
---|
2187 | updater: (value: $ValOf<$ValOf<C, K>, K2> | NSV) => S
|
---|
2188 | ): C;
|
---|
2189 | declare function updateIn<
|
---|
2190 | C,
|
---|
2191 | K: $KeyOf<C>,
|
---|
2192 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2193 | S: $ValOf<$ValOf<C, K>, K2>
|
---|
2194 | >(
|
---|
2195 | collection: C,
|
---|
2196 | keyPath: [K, K2],
|
---|
2197 | updater: (value: $ValOf<$ValOf<C, K>, K2>) => S
|
---|
2198 | ): C;
|
---|
2199 | declare function updateIn<
|
---|
2200 | C,
|
---|
2201 | K: $KeyOf<C>,
|
---|
2202 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2203 | K3: $KeyOf<$ValOf<$ValOf<C, K>, K2>>,
|
---|
2204 | S: $ValOf<$ValOf<$ValOf<C, K>, K2>, K3>,
|
---|
2205 | NSV
|
---|
2206 | >(
|
---|
2207 | collection: C,
|
---|
2208 | keyPath: [K, K2, K3],
|
---|
2209 | notSetValue: NSV,
|
---|
2210 | updater: (value: $ValOf<$ValOf<$ValOf<C, K>, K2>, K3> | NSV) => S
|
---|
2211 | ): C;
|
---|
2212 | declare function updateIn<
|
---|
2213 | C,
|
---|
2214 | K: $KeyOf<C>,
|
---|
2215 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2216 | K3: $KeyOf<$ValOf<$ValOf<C, K>, K2>>,
|
---|
2217 | S: $ValOf<$ValOf<$ValOf<C, K>, K2>, K3>
|
---|
2218 | >(
|
---|
2219 | collection: C,
|
---|
2220 | keyPath: [K, K2, K3],
|
---|
2221 | updater: (value: $ValOf<$ValOf<$ValOf<C, K>, K2>, K3>) => S
|
---|
2222 | ): C;
|
---|
2223 | declare function updateIn<
|
---|
2224 | C,
|
---|
2225 | K: $KeyOf<C>,
|
---|
2226 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2227 | K3: $KeyOf<$ValOf<$ValOf<C, K>, K2>>,
|
---|
2228 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>>,
|
---|
2229 | S: $ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4>,
|
---|
2230 | NSV
|
---|
2231 | >(
|
---|
2232 | collection: C,
|
---|
2233 | keyPath: [K, K2, K3, K4],
|
---|
2234 | notSetValue: NSV,
|
---|
2235 | updater: (value: $ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4> | NSV) => S
|
---|
2236 | ): C;
|
---|
2237 | declare function updateIn<
|
---|
2238 | C,
|
---|
2239 | K: $KeyOf<C>,
|
---|
2240 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2241 | K3: $KeyOf<$ValOf<$ValOf<C, K>, K2>>,
|
---|
2242 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>>,
|
---|
2243 | S: $ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4>
|
---|
2244 | >(
|
---|
2245 | collection: C,
|
---|
2246 | keyPath: [K, K2, K3, K4],
|
---|
2247 | updater: (value: $ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4>) => S
|
---|
2248 | ): C;
|
---|
2249 | declare function updateIn<
|
---|
2250 | C,
|
---|
2251 | K: $KeyOf<C>,
|
---|
2252 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2253 | K3: $KeyOf<$ValOf<$ValOf<C, K>, K2>>,
|
---|
2254 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>>,
|
---|
2255 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4>>,
|
---|
2256 | S: $ValOf<$ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4>, K5>,
|
---|
2257 | NSV
|
---|
2258 | >(
|
---|
2259 | collection: C,
|
---|
2260 | keyPath: [K, K2, K3, K4, K5],
|
---|
2261 | notSetValue: NSV,
|
---|
2262 | updater: (
|
---|
2263 | value: $ValOf<$ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4>, K5> | NSV
|
---|
2264 | ) => S
|
---|
2265 | ): C;
|
---|
2266 | declare function updateIn<
|
---|
2267 | C,
|
---|
2268 | K: $KeyOf<C>,
|
---|
2269 | K2: $KeyOf<$ValOf<C, K>>,
|
---|
2270 | K3: $KeyOf<$ValOf<$ValOf<C, K>, K2>>,
|
---|
2271 | K4: $KeyOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>>,
|
---|
2272 | K5: $KeyOf<$ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4>>,
|
---|
2273 | S: $ValOf<$ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4>, K5>
|
---|
2274 | >(
|
---|
2275 | collection: C,
|
---|
2276 | keyPath: [K, K2, K3, K4, K5],
|
---|
2277 | updater: (
|
---|
2278 | value: $ValOf<$ValOf<$ValOf<$ValOf<$ValOf<C, K>, K2>, K3>, K4>, K5>
|
---|
2279 | ) => S
|
---|
2280 | ): C;
|
---|
2281 |
|
---|
2282 | declare function merge<C>(
|
---|
2283 | collection: C,
|
---|
2284 | ...collections: Array<
|
---|
2285 | | $IterableOf<C>
|
---|
2286 | | $Shape<RecordValues<C>>
|
---|
2287 | | PlainObjInput<$KeyOf<C>, $ValOf<C>>
|
---|
2288 | >
|
---|
2289 | ): C;
|
---|
2290 | declare function mergeWith<C>(
|
---|
2291 | merger: (oldVal: $ValOf<C>, newVal: $ValOf<C>, key: $KeyOf<C>) => $ValOf<C>,
|
---|
2292 | collection: C,
|
---|
2293 | ...collections: Array<
|
---|
2294 | | $IterableOf<C>
|
---|
2295 | | $Shape<RecordValues<C>>
|
---|
2296 | | PlainObjInput<$KeyOf<C>, $ValOf<C>>
|
---|
2297 | >
|
---|
2298 | ): C;
|
---|
2299 | declare function mergeDeep<C>(
|
---|
2300 | collection: C,
|
---|
2301 | ...collections: Array<
|
---|
2302 | | $IterableOf<C>
|
---|
2303 | | $Shape<RecordValues<C>>
|
---|
2304 | | PlainObjInput<$KeyOf<C>, $ValOf<C>>
|
---|
2305 | >
|
---|
2306 | ): C;
|
---|
2307 | declare function mergeDeepWith<C>(
|
---|
2308 | merger: (oldVal: any, newVal: any, key: any) => mixed,
|
---|
2309 | collection: C,
|
---|
2310 | ...collections: Array<
|
---|
2311 | | $IterableOf<C>
|
---|
2312 | | $Shape<RecordValues<C>>
|
---|
2313 | | PlainObjInput<$KeyOf<C>, $ValOf<C>>
|
---|
2314 | >
|
---|
2315 | ): C;
|
---|
2316 |
|
---|
2317 | export {
|
---|
2318 | Collection,
|
---|
2319 | Seq,
|
---|
2320 | List,
|
---|
2321 | Map,
|
---|
2322 | OrderedMap,
|
---|
2323 | OrderedSet,
|
---|
2324 | Range,
|
---|
2325 | Repeat,
|
---|
2326 | Record,
|
---|
2327 | Set,
|
---|
2328 | Stack,
|
---|
2329 | fromJS,
|
---|
2330 | is,
|
---|
2331 | hash,
|
---|
2332 | isImmutable,
|
---|
2333 | isCollection,
|
---|
2334 | isKeyed,
|
---|
2335 | isIndexed,
|
---|
2336 | isAssociative,
|
---|
2337 | isOrdered,
|
---|
2338 | isRecord,
|
---|
2339 | isValueObject,
|
---|
2340 | get,
|
---|
2341 | has,
|
---|
2342 | remove,
|
---|
2343 | set,
|
---|
2344 | update,
|
---|
2345 | getIn,
|
---|
2346 | hasIn,
|
---|
2347 | removeIn,
|
---|
2348 | setIn,
|
---|
2349 | updateIn,
|
---|
2350 | merge,
|
---|
2351 | mergeWith,
|
---|
2352 | mergeDeep,
|
---|
2353 | mergeDeepWith,
|
---|
2354 | };
|
---|
2355 |
|
---|
2356 | export default {
|
---|
2357 | Collection,
|
---|
2358 | Seq,
|
---|
2359 |
|
---|
2360 | List,
|
---|
2361 | Map,
|
---|
2362 | OrderedMap,
|
---|
2363 | OrderedSet,
|
---|
2364 | PairSorting,
|
---|
2365 | Range,
|
---|
2366 | Repeat,
|
---|
2367 | Record,
|
---|
2368 | Set,
|
---|
2369 | Stack,
|
---|
2370 |
|
---|
2371 | fromJS,
|
---|
2372 | is,
|
---|
2373 | hash,
|
---|
2374 |
|
---|
2375 | isImmutable,
|
---|
2376 | isCollection,
|
---|
2377 | isKeyed,
|
---|
2378 | isIndexed,
|
---|
2379 | isAssociative,
|
---|
2380 | isOrdered,
|
---|
2381 | isRecord,
|
---|
2382 | isValueObject,
|
---|
2383 |
|
---|
2384 | get,
|
---|
2385 | has,
|
---|
2386 | remove,
|
---|
2387 | set,
|
---|
2388 | update,
|
---|
2389 | getIn,
|
---|
2390 | hasIn,
|
---|
2391 | removeIn,
|
---|
2392 | setIn,
|
---|
2393 | updateIn,
|
---|
2394 | merge,
|
---|
2395 | mergeWith,
|
---|
2396 | mergeDeep,
|
---|
2397 | mergeDeepWith,
|
---|
2398 | };
|
---|
2399 |
|
---|
2400 | export type {
|
---|
2401 | Comparator,
|
---|
2402 | KeyedCollection,
|
---|
2403 | IndexedCollection,
|
---|
2404 | SetCollection,
|
---|
2405 | KeyedSeq,
|
---|
2406 | IndexedSeq,
|
---|
2407 | SetSeq,
|
---|
2408 | RecordFactory,
|
---|
2409 | RecordOf,
|
---|
2410 | RecordInstance,
|
---|
2411 | ValueObject,
|
---|
2412 | $KeyOf,
|
---|
2413 | $ValOf,
|
---|
2414 | };
|
---|