import { ValueKind, Comparable, BrsBoolean } from "./BrsType";
import { BrsNumber, Numeric } from "./BrsNumber";
import { BrsType } from ".";
import { Boxable } from "./Boxing";
import { Float } from "./Float";
import { Double } from "./Double";
import { Int64 } from "./Int64";
import { RoInt } from "./components/RoInt";
import Long from "long";
export declare class Int32 implements Numeric, Comparable, Boxable {
    inArray: boolean;
    readonly kind = ValueKind.Int32;
    private readonly value;
    getValue(): number;
    toBoolean(): boolean;
    /**
     * Creates a new BrightScript 32-bit integer value representing the provided `value`.
     * @param value the value to store in the BrightScript number, truncated to a 32-bit
     *              integer.
     */
    constructor(value: number | Long, inArray?: boolean);
    /**
     * Creates a new BrightScript 32-bit integer value representing the integer contained in
     * `asString`.
     * @param asString the string representation of the value to store in the BrightScript 32-bit
     *                 int. Will be truncated to a 32-bit integer.
     * @returns a BrightScript 32-bit integer value representing `asString`.
     */
    static fromString(asString: string): Int32;
    add(rhs: BrsNumber): BrsNumber;
    subtract(rhs: BrsNumber): BrsNumber;
    multiply(rhs: BrsNumber): BrsNumber;
    divide(rhs: BrsNumber): Float | Double;
    modulo(rhs: BrsNumber): BrsNumber;
    intDivide(rhs: BrsNumber): Int32 | Int64;
    leftShift(rhs: BrsNumber): Int32;
    rightShift(rhs: BrsNumber): Int32;
    pow(exponent: BrsNumber): BrsNumber;
    and(rhs: BrsNumber | BrsBoolean): BrsNumber | BrsBoolean;
    or(rhs: BrsNumber | BrsBoolean): BrsNumber | BrsBoolean;
    not(): BrsNumber;
    lessThan(other: BrsType): BrsBoolean;
    greaterThan(other: BrsType): BrsBoolean;
    equalTo(other: BrsType): BrsBoolean;
    toString(parent?: BrsType): string;
    box(): RoInt;
}
