export declare const enum DateKind { Unspecified = 0, UTC = 1, Local = 2 } export interface IDateTime extends Date { kind?: DateKind; } export interface IDateTimeOffset extends Date { offset?: number; } export interface IComparable extends IEquatable { CompareTo(x: T): number; } export interface IEquatable { Equals(x: T): boolean; } export interface IHashable { GetHashCode(): number; } export interface IDisposable { Dispose(): void; } export interface IComparer { Compare(x: T, y: T): number; } export interface IEqualityComparer { Equals(x: T, y: T): boolean; GetHashCode(x: T): number; } export interface ICollection extends Iterable { readonly Count: number; readonly IsReadOnly: boolean; Add(item: T): void; Clear(): void; Contains(item: T): boolean; CopyTo(array: T[], arrayIndex: number): void; Remove(item: T): boolean; } export declare function isArrayLike(x: T | ArrayLike | Iterable): x is T[]; export declare function isIterable(x: T | ArrayLike | Iterable): x is Iterable; export declare function isEnumerable(x: T | Iterable): x is IEnumerable; export declare function isComparer(x: T | IComparer): x is IComparer; export declare function isComparable(x: T | IComparable): x is IComparable; export declare function isEquatable(x: T | IEquatable): x is IEquatable; export declare function isHashable(x: T | IHashable): x is IHashable; export declare function isDisposable(x: T | IDisposable): x is IDisposable; export declare function disposeSafe(x: any): void; export declare function defaultOf(): T; export declare function sameConstructor(x: T, y: T): boolean; export interface IEnumerator extends IDisposable { ["System.Collections.Generic.IEnumerator`1.get_Current"](): T; ["System.Collections.IEnumerator.get_Current"](): T; ["System.Collections.IEnumerator.MoveNext"](): boolean; ["System.Collections.IEnumerator.Reset"](): void; Dispose(): void; } export interface IEnumerable extends Iterable { GetEnumerator(): IEnumerator; "System.Collections.IEnumerable.GetEnumerator"(): IEnumerator; } export declare class Enumerable implements IEnumerable { private en; constructor(en: IEnumerator); GetEnumerator(): IEnumerator; "System.Collections.IEnumerable.GetEnumerator"(): IEnumerator; [Symbol.iterator](): this; next(): IteratorResult; } export declare class Enumerator implements IEnumerator { private iter; private current; constructor(iter: Iterator); ["System.Collections.Generic.IEnumerator`1.get_Current"](): T; ["System.Collections.IEnumerator.get_Current"](): T; ["System.Collections.IEnumerator.MoveNext"](): boolean; ["System.Collections.IEnumerator.Reset"](): void; Dispose(): void; } export declare function toEnumerable(e: IEnumerable | Iterable): IEnumerable; export declare function getEnumerator(e: IEnumerable | Iterable): IEnumerator; export declare function toIterator(en: IEnumerator): Iterator; export declare function enumerableToIterator(e: IEnumerable | Iterable): Iterator; export interface ISet { add(value: T): ISet; clear(): void; delete(value: T): boolean; forEach(callbackfn: (value: T, value2: T, set: ISet) => void, thisArg?: any): void; has(value: T): boolean; readonly size: number; [Symbol.iterator](): Iterator; entries(): Iterable<[T, T]>; keys(): Iterable; values(): Iterable; } export interface IMap { clear(): void; delete(key: K): boolean; forEach(callbackfn: (value: V, key: K, map: IMap) => void, thisArg?: any): void; get(key: K): V | undefined; has(key: K): boolean; set(key: K, value: V): IMap; readonly size: number; [Symbol.iterator](): Iterator<[K, V]>; entries(): Iterable<[K, V]>; keys(): Iterable; values(): Iterable; } export declare class Comparer implements IComparer { Compare: (x: T, y: T) => number; constructor(f?: (x: T, y: T) => number); } export declare function comparerFromEqualityComparer(comparer: IEqualityComparer): IComparer; export declare function assertEqual(actual: T, expected: T, msg?: string): void; export declare function assertNotEqual(actual: T, expected: T, msg?: string): void; export declare class Lazy { private factory; private isValueCreated; private createdValue?; constructor(factory: () => T); get Value(): T | undefined; get IsValueCreated(): boolean; } export declare function lazyFromValue(v: T): Lazy; export declare function padWithZeros(i: number, length: number): string; export declare function padLeftAndRightWithZeros(i: number, lengthLeft: number, lengthRight: number): string; export declare function dateOffset(date: IDateTime | IDateTimeOffset): number; export declare function int16ToString(i: number, radix?: number): string; export declare function int32ToString(i: number, radix?: number): string; export declare function int64ToString(i: bigint, radix?: number): string; export declare abstract class ObjectRef { static id(o: any): any; private static idMap; private static count; } export declare function stringHash(s: string): number; export declare function numberHash(x: number): number; export declare function bigintHash(x: bigint): number; export declare function combineHashCodes(hashes: ArrayLike): number; export declare function physicalHash(x: T): number; export declare function identityHash(x: T): number; export declare function dateHash(x: Date): number; export declare function arrayHash(x: ArrayLike): number; export declare function structuralHash(x: T): number; export declare function fastStructuralHash(x: T): number; export declare function safeHash(x: T): number; export declare function equalArraysWith(x: ArrayLike, y: ArrayLike, eq: (x: T, y: T) => boolean): boolean; export declare function equalArrays(x: ArrayLike, y: ArrayLike): boolean; export declare function physicalEquality(x: T, y: T): boolean; export declare function equals(x: T, y: T): boolean; export declare function compareDates(x: Date | IDateTime | IDateTimeOffset, y: Date | IDateTime | IDateTimeOffset): 0 | 1 | -1; export declare function comparePrimitives(x: T, y: T): number; export declare function compareArraysWith(x: ArrayLike, y: ArrayLike, comp: (x: T, y: T) => number): number; export declare function compareArrays(x: ArrayLike, y: ArrayLike): number; export declare function compare(x: T, y: T): number; export declare function min(comparer: (x: T, y: T) => number, x: T, y: T): T; export declare function max(comparer: (x: T, y: T) => number, x: T, y: T): T; export declare function clamp(comparer: (x: T, y: T) => number, value: T, min: T, max: T): T; export declare function createAtom(value: T): ((...args: Args) => Args extends [] ? T : void); export declare function createObj(fields: Iterable<[string, any]>): any; export declare function jsOptions(mutator: (x: object) => void): object; export declare function round(value: number, digits?: number): number; export declare function sign(x: number): number; export declare function unescapeDataString(s: string): string; export declare function escapeDataString(s: string): string; export declare function escapeUriString(s: string): string; export declare function count(col: Iterable): number; export declare function clear(col: Iterable): void; export declare function uncurry2(f: (a1: T1) => (a2: T2) => TResult): (a1: T1, a2: T2) => TResult; export declare function curry2(f: (a1: T1, a2: T2) => TResult): (a1: T1) => (a2: T2) => TResult; export declare function uncurry3(f: (a1: T1) => (a2: T2) => (a3: T3) => TResult): (a1: T1, a2: T2, a3: T3) => TResult; export declare function curry3(f: (a1: T1, a2: T2, a3: T3) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => TResult; export declare function uncurry4(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4) => TResult; export declare function curry4(f: (a1: T1, a2: T2, a3: T3, a4: T4) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => TResult; export declare function uncurry5(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5) => TResult; export declare function curry5(f: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => TResult; export declare function uncurry6(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6) => TResult; export declare function curry6(f: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => TResult; export declare function uncurry7(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7) => TResult; export declare function curry7(f: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => TResult; export declare function uncurry8(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8) => TResult; export declare function curry8(f: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => TResult; export declare function uncurry9(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9) => TResult; export declare function curry9(f: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => TResult; export declare function uncurry10(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10) => TResult; export declare function curry10(f: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => TResult; export declare function uncurry11(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11) => TResult; export declare function curry11(f: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => TResult; export declare function uncurry12(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12) => TResult; export declare function curry12(f: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => TResult; export declare function uncurry13(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => (a13: T13) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13) => TResult; export declare function curry13(f: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => (a13: T13) => TResult; export declare function uncurry14(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => (a13: T13) => (a14: T14) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14) => TResult; export declare function curry14(f: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => (a13: T13) => (a14: T14) => TResult; export declare function uncurry15(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => (a13: T13) => (a14: T14) => (a15: T15) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15) => TResult; export declare function curry15(f: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => (a13: T13) => (a14: T14) => (a15: T15) => TResult; export declare function uncurry16(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => (a13: T13) => (a14: T14) => (a15: T15) => (a16: T16) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16) => TResult; export declare function curry16(f: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => (a13: T13) => (a14: T14) => (a15: T15) => (a16: T16) => TResult; export declare function uncurry17(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => (a13: T13) => (a14: T14) => (a15: T15) => (a16: T16) => (a17: T17) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17) => TResult; export declare function curry17(f: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => (a13: T13) => (a14: T14) => (a15: T15) => (a16: T16) => (a17: T17) => TResult; export declare function uncurry18(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => (a13: T13) => (a14: T14) => (a15: T15) => (a16: T16) => (a17: T17) => (a18: T18) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17, a18: T18) => TResult; export declare function curry18(f: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17, a18: T18) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => (a13: T13) => (a14: T14) => (a15: T15) => (a16: T16) => (a17: T17) => (a18: T18) => TResult; export declare function uncurry19(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => (a13: T13) => (a14: T14) => (a15: T15) => (a16: T16) => (a17: T17) => (a18: T18) => (a19: T19) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17, a18: T18, a19: T19) => TResult; export declare function curry19(f: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17, a18: T18, a19: T19) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => (a13: T13) => (a14: T14) => (a15: T15) => (a16: T16) => (a17: T17) => (a18: T18) => (a19: T19) => TResult; export declare function uncurry20(f: (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => (a13: T13) => (a14: T14) => (a15: T15) => (a16: T16) => (a17: T17) => (a18: T18) => (a19: T19) => (a20: T20) => TResult): (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17, a18: T18, a19: T19, a20: T20) => TResult; export declare function curry20(f: (a1: T1, a2: T2, a3: T3, a4: T4, a5: T5, a6: T6, a7: T7, a8: T8, a9: T9, a10: T10, a11: T11, a12: T12, a13: T13, a14: T14, a15: T15, a16: T16, a17: T17, a18: T18, a19: T19, a20: T20) => TResult): (a1: T1) => (a2: T2) => (a3: T3) => (a4: T4) => (a5: T5) => (a6: T6) => (a7: T7) => (a8: T8) => (a9: T9) => (a10: T10) => (a11: T11) => (a12: T12) => (a13: T13) => (a14: T14) => (a15: T15) => (a16: T16) => (a17: T17) => (a18: T18) => (a19: T19) => (a20: T20) => TResult; export declare function copyToArray(source: T[], sourceIndex: number, target: T[], targetIndex: number, count: number): void;