"use strict";
// SPDX-License-Identifier: AGPL-3.0-or-later
// Copyright (C) 2024-2026 Gracker (Chris)
// This file is part of SmartPerfetto. See LICENSE for details.
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEFAULT_DECISION_THRESHOLD_MANIFEST = void 0;
exports.getScrollingDecisionThresholds = getScrollingDecisionThresholds;
exports.getLaunchDecisionThresholds = getLaunchDecisionThresholds;
exports.getDecisionTreePostProcessingThresholds = getDecisionTreePostProcessingThresholds;
exports.DEFAULT_DECISION_THRESHOLD_MANIFEST = {
    scrolling: {
        noProblem: {
            minAvgFps: 55,
            maxJankRate: 0.05,
        },
        continuousLowPattern: {
            maxFpsVariance: 15,
            maxAvgFps: 50,
        },
        surfaceFlinger: {
            maxAvgCompositionMs: 4,
        },
        renderThread: {
            minAvgRenderMs: 16,
        },
        mainThread: {
            minAvgDoFrameMs: 12,
        },
        cpuScheduling: {
            minAvgRunnableMs: 5,
        },
        jankClassification: {
            appDeadlineMissedMinRatio: 0.6,
            sfStuffingMinRatio: 0.6,
            binderBlockMinMs: 5,
        },
    },
    launch: {
        coldLaunch: {
            maxTtidMs: 1000,
        },
        processStart: {
            minZygoteForkMs: 100,
        },
        activityCreate: {
            minLayoutInflateMs: 200,
        },
        warmLaunch: {
            maxDurationMs: 500,
        },
        hotLaunch: {
            maxDurationMs: 200,
        },
    },
    postProcessing: {
        findings: {
            lowFps: {
                threshold: 55,
                highSeverityThreshold: 30,
            },
            slowStartup: {
                thresholdMs: 1000,
                highSeverityThresholdMs: 2000,
            },
        },
    },
};
function getScrollingDecisionThresholds(manifest = exports.DEFAULT_DECISION_THRESHOLD_MANIFEST) {
    return manifest.scrolling || exports.DEFAULT_DECISION_THRESHOLD_MANIFEST.scrolling;
}
function getLaunchDecisionThresholds(manifest = exports.DEFAULT_DECISION_THRESHOLD_MANIFEST) {
    return manifest.launch || exports.DEFAULT_DECISION_THRESHOLD_MANIFEST.launch;
}
function getDecisionTreePostProcessingThresholds(manifest = exports.DEFAULT_DECISION_THRESHOLD_MANIFEST) {
    return manifest.postProcessing || exports.DEFAULT_DECISION_THRESHOLD_MANIFEST.postProcessing;
}
//# sourceMappingURL=decisionThresholdManifest.js.map