import { Trial } from "./Trial";
export interface IPlotData {
    x: number;
    y: number;
    tag?: string;
    label?: string;
}
export interface IGameFlowRecordCounts {
    item?: number;
    electric?: number;
    circuit?: number;
    pollution?: number;
    system?: number;
}
export interface IGameFlowResults {
    data: IGameFlow[];
    minTick?: number;
    maxTick?: number;
    labels?: string[];
    cachedAt?: Date;
}
export interface IGameFlowItemResults extends IGameFlowResults {
    data: IGameFlowItemTick[];
    trial: Trial;
    averageConsByLabel?: {
        [key: string]: number;
    };
    averageProdByLabel?: {
        [key: string]: number;
    };
}
export interface IGameFlowElectricResults extends IGameFlowResults {
    data: IGameFlowElectricTick[];
    trial: Trial;
}
export interface IGameFlowCircuitResults extends IGameFlowResults {
    data: IGameFlowCircuitTick[];
    trial: Trial;
}
export interface IGameFlowPollutionResults extends IGameFlowResults {
    data: IGameFlowPollutionTick[];
    trial: Trial;
}
export interface IGameFlowSystemResults {
    data: IGameFlowSystemTick[];
    trial: Trial;
}
export interface IGameFlow {
    label: string;
    tick: number;
}
export interface IGameFlowItemTick extends IGameFlow {
    cons: number;
    prod: number;
}
export interface IGameFlowElectricTick extends IGameFlow {
    cons: number;
    prod: number;
}
export interface IGameFlowCircuitTick extends IGameFlow {
    networkId: number;
    color: string;
    count: number;
    signalType: string;
}
export interface IGameFlowPollutionTick extends IGameFlow {
    count: number;
}
export interface IGameFlowSystemTick extends IGameFlow {
    timestamp: number;
    wholeUpdate: number;
    latencyUpdate: number;
    gameUpdate: number;
    circuitNetworkUpdate: number;
    transportLinesUpdate: number;
    fluidsUpdate: number;
    heatManagerUpdate: number;
    entityUpdate: number;
    particleUpdate: number;
    mapGenerator: number;
    mapGeneratorBasicTilesSupportCompute: number;
    mapGeneratorBasicTilesSupportApply: number;
    mapGeneratorCorrectedTilesPrepare: number;
    mapGeneratorCorrectedTilesCompute: number;
    mapGeneratorCorrectedTilesApply: number;
    mapGeneratorVariations: number;
    mapGeneratorEntitiesPrepare: number;
    mapGeneratorEntitiesCompute: number;
    mapGeneratorEntitiesApply: number;
    crcComputation: number;
    electricNetworkUpdate: number;
    logisticManagerUpdate: number;
    constructionManagerUpdate: number;
    pathFinder: number;
    trains: number;
    trainPathFinder: number;
    commander: number;
    chartRefresh: number;
    luaGarbageIncremental: number;
    chartUpdate: number;
    scriptUpdate: number;
}
export declare class GameFlowItemRecord implements IGameFlowItemTick {
    trial_id: string;
    label: string;
    tick: number;
    cons: number;
    prod: number;
    constructor(params: IGameFlowItemTick, trialId: string);
    static fromRecords(records: IGameFlowItemTick[], trialId: string): GameFlowItemRecord[];
}
export declare class GameFlowElectricRecord implements IGameFlowElectricTick {
    trial_id: string;
    label: string;
    tick: number;
    cons: number;
    prod: number;
    constructor(params: IGameFlowElectricTick, trialId: string);
    static fromRecords(records: IGameFlowElectricTick[], trialId: string): GameFlowElectricRecord[];
}
export declare class GameFlowCircuitRecord implements IGameFlowCircuitTick {
    trial_id: string;
    networkId: number;
    tick: number;
    color: string;
    label: string;
    signalType: string;
    count: number;
    constructor(params: IGameFlowCircuitTick, trialId: string);
    static fromRecords(records: IGameFlowCircuitTick[], trialId: string): GameFlowCircuitRecord[];
}
export declare class GameFlowPollutionRecord implements IGameFlowPollutionTick {
    trial_id: string;
    label: string;
    tick: number;
    count: number;
    constructor(params: IGameFlowPollutionTick, trialId: string);
    static fromRecords(records: IGameFlowPollutionTick[], trialId: string): GameFlowPollutionRecord[];
}
export declare class GameFlowSystemRecord implements IGameFlowSystemTick {
    trial_id: string;
    label: string;
    tick: number;
    timestamp: number;
    wholeUpdate: number;
    latencyUpdate: number;
    gameUpdate: number;
    circuitNetworkUpdate: number;
    transportLinesUpdate: number;
    fluidsUpdate: number;
    heatManagerUpdate: number;
    entityUpdate: number;
    particleUpdate: number;
    mapGenerator: number;
    mapGeneratorBasicTilesSupportCompute: number;
    mapGeneratorBasicTilesSupportApply: number;
    mapGeneratorCorrectedTilesPrepare: number;
    mapGeneratorCorrectedTilesCompute: number;
    mapGeneratorCorrectedTilesApply: number;
    mapGeneratorVariations: number;
    mapGeneratorEntitiesPrepare: number;
    mapGeneratorEntitiesCompute: number;
    mapGeneratorEntitiesApply: number;
    crcComputation: number;
    electricNetworkUpdate: number;
    logisticManagerUpdate: number;
    constructionManagerUpdate: number;
    pathFinder: number;
    trains: number;
    trainPathFinder: number;
    commander: number;
    chartRefresh: number;
    luaGarbageIncremental: number;
    chartUpdate: number;
    scriptUpdate: number;
    constructor(params: IGameFlowSystemTick, trialId: string);
    static fromRecords(records: IGameFlowSystemTick[], trialId: string): GameFlowSystemRecord[];
}
