"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class Device {
    constructor(_name, _apiLevel, _type, _platform, _token, _status, _pid, _releaseVersion) {
        this._name = _name;
        this._apiLevel = _apiLevel;
        this._type = _type;
        this._platform = _platform;
        this._token = _token;
        this._status = _status;
        this._pid = _pid;
        this._releaseVersion = _releaseVersion;
        this._startedAt = -1;
        this._busySince = -1;
    }
    get name() {
        return this._name;
    }
    set name(name) {
        this._name = name;
    }
    set apiLevel(api) {
        this._apiLevel = api;
    }
    /**
     * Android related only
     */
    set releaseVersion(releaseVersion) {
        this._releaseVersion = releaseVersion;
    }
    get releaseVersion() {
        return this._releaseVersion;
    }
    get apiLevel() {
        return this._apiLevel;
    }
    set token(token) {
        this._token = token;
    }
    get token() {
        return this._token;
    }
    set type(type) {
        this._type = type;
    }
    get type() {
        return this._type;
    }
    get platform() {
        return this._platform;
    }
    set platform(platform) {
        this._platform = platform;
    }
    set pid(pid) {
        this._pid = pid;
    }
    get pid() {
        return this._pid;
    }
    get status() {
        return this._status;
    }
    set status(status) {
        this._status = status;
    }
    get startedAt() {
        return this._startedAt;
    }
    set startedAt(startedAt) {
        this._startedAt = startedAt;
    }
    get busySince() {
        return this._busySince;
    }
    set busySince(busySince) {
        this._busySince = busySince;
    }
    get info() {
        return this._info;
    }
    set info(info) {
        this._info = info;
    }
    get config() {
        return this._config;
    }
    set config(config) {
        this._config = config;
    }
    toJson() {
        return {
            name: this.name,
            token: this.token,
            type: this.type,
            platform: this.platform,
            info: this.info,
            config: this.config,
            status: this.status,
            startedAt: this.startedAt,
            pid: this.pid,
            apiLevel: this.apiLevel,
            parentProcessPid: this.apiLevel
        };
    }
    toString() {
        return "" +
            "name " + this.name +
            "; token " + this.token +
            "; type " + this.type +
            "; platform " + this.platform +
            "; info " + this.info +
            "; config " + this.config +
            "; status " + this.status +
            "; startedAt " + this.startedAt +
            "; pid " + this.pid +
            "; apiLevel " + this.apiLevel;
    }
}
exports.Device = Device;
// export function toString(device:IDevice) {
//   return "" +
//     "name " + this.name +
//     "; token " + this.token +
//     "; type " + this.type +
//     "; platform " + this.platform +
//     "; info " + this.info +
//     "; config " + this.config +
//     "; status " + this.status +
//     "; startedAt" + this.startedAt +
//     "; pid" + this.pid +
//     "; apiLevel" + this.apiLevel;
// }
//# sourceMappingURL=device.js.map