// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT

// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Create as $Create } from "@wailsio/runtime";

// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as time$0 from "../../../../../time/models.js";

/**
 * HashratePoint represents a single hashrate measurement at a specific time.
 */
export class HashratePoint {
    "timestamp": time$0.Time;
    "hashrate": number;

    /** Creates a new HashratePoint instance. */
    constructor($$source: Partial<HashratePoint> = {}) {
        if (!("timestamp" in $$source)) {
            this["timestamp"] = null;
        }
        if (!("hashrate" in $$source)) {
            this["hashrate"] = 0;
        }

        Object.assign(this, $$source);
    }

    /**
     * Creates a new HashratePoint instance from a string or object.
     */
    static createFrom($$source: any = {}): HashratePoint {
        let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source;
        return new HashratePoint($$parsedSource as Partial<HashratePoint>);
    }
}

/**
 * Manager handles the lifecycle and operations of multiple miners.
 */
export class Manager {

    /** Creates a new Manager instance. */
    constructor($$source: Partial<Manager> = {}) {

        Object.assign(this, $$source);
    }

    /**
     * Creates a new Manager instance from a string or object.
     */
    static createFrom($$source: any = {}): Manager {
        let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source;
        return new Manager($$parsedSource as Partial<Manager>);
    }
}
