Merge pull request #34548 from ltetzlaff/cuint

Fix missing types in `cuint`
This commit is contained in:
Benjamin Lichtman
2019-04-11 15:10:24 -07:00
committed by GitHub
+42 -8
View File
@@ -4,21 +4,47 @@
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
export interface Uint {
clone(): this;
// Math
add(x: this): this;
subtract(x: this): this;
multiply(x: this): this;
xor(x: this): this;
rotl(n: number): this;
shiftRight(n: number): this;
div(x: this): this;
// Compare
equals(x: this): boolean;
eq(x: this): boolean;
greaterThan(x: this): boolean;
gt(x: this): boolean;
lessThan(x: this): boolean;
lt(x: this): boolean;
// Bitwise
negate(): this;
or(x: this): this;
and(x: this): this;
xor(x: this): this;
not(x: this): this;
shiftRight(n: number): this;
shiftr(n: number): this;
shiftLeft(n: number): this;
shiftl(n: number): this;
rorateLeft(n: number): this;
rotl(n: number): this;
rorateRight(n: number): this;
rotr(n: number): this;
// Deserialize
fromNumber(n: number): this;
fromBits(...bits: number[]): this;
fromString(integer: string, radix?: number): this;
// Serialize
toNumber(): number;
toString(base?: number): string;
clone(): this;
_low: number;
_high: number;
toString(base?: number): string;
}
export interface UintConstructor<T extends Uint> {
@@ -33,7 +59,15 @@ export interface UintConstructor<T extends Uint> {
new (text: string, radix?: number): T;
prototype: T;
}
}
export const UINT64: UintConstructor<Uint>;
export interface Uint64Constructor<T extends Uint> extends UintConstructor<T> {
// called as a function:
(a00: number, a16: number, a32: number, a48: number): T;
// called as constructor:
new (a00: number, a16: number, a32: number, a48: number): T;
}
export const UINT64: Uint64Constructor<Uint>;
export const UINT32: UintConstructor<Uint>;