import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { AndroidProcessMetadata } from "./process_metadata_pb";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/perfetto/metrics/android/jank_cuj_metric.proto.
 */
export declare const file_protos_perfetto_metrics_android_jank_cuj_metric: GenFile;
/**
 * @generated from message perfetto.protos.AndroidJankCujMetric
 */
export type AndroidJankCujMetric = Message<"perfetto.protos.AndroidJankCujMetric"> & {
    /**
     * @generated from field: repeated perfetto.protos.AndroidJankCujMetric.Cuj cuj = 1;
     */
    cuj: AndroidJankCujMetric_Cuj[];
};
/**
 * Describes the message perfetto.protos.AndroidJankCujMetric.
 * Use `create(AndroidJankCujMetricSchema)` to create a new message.
 */
export declare const AndroidJankCujMetricSchema: GenMessage<AndroidJankCujMetric>;
/**
 * Next id: 12
 *
 * @generated from message perfetto.protos.AndroidJankCujMetric.Cuj
 */
export type AndroidJankCujMetric_Cuj = Message<"perfetto.protos.AndroidJankCujMetric.Cuj"> & {
    /**
     * ID of the CUJ that is unique within the trace.
     *
     * @generated from field: optional int32 id = 1;
     */
    id: number;
    /**
     * Name of the CUJ, extracted from the CUJ trace marker.
     * For example SHADE_EXPAND_COLLAPSE from J<SHADE_EXPAND_COLLAPSE>.
     *
     * @generated from field: optional string name = 2;
     */
    name: string;
    /**
     * Details about the process (uid, version, etc)
     *
     * @generated from field: optional perfetto.protos.AndroidProcessMetadata process = 3;
     */
    process?: AndroidProcessMetadata;
    /**
     * ts of the CUJ trace marker slice.
     *
     * @generated from field: optional int64 ts = 4;
     */
    ts: bigint;
    /**
     * dur of the CUJ trace marker slice.
     *
     * @generated from field: optional int64 dur = 5;
     */
    dur: bigint;
    /**
     * Details about each of the frames within the CUJ.
     *
     * @generated from field: repeated perfetto.protos.AndroidJankCujMetric.Frame frame = 6;
     */
    frame: AndroidJankCujMetric_Frame[];
    /**
     * Details about each of the SF frames within the CUJ.
     *
     * @generated from field: repeated perfetto.protos.AndroidJankCujMetric.Frame sf_frame = 10;
     */
    sfFrame: AndroidJankCujMetric_Frame[];
    /**
     * Metrics extracted from the counters output by FrameTracker
     * Does not contain the frame_dur percentile information.
     *
     * @generated from field: optional perfetto.protos.AndroidJankCujMetric.Metrics counter_metrics = 7;
     */
    counterMetrics?: AndroidJankCujMetric_Metrics;
    /**
     * Metrics extracted from the frame timeline.
     *
     * @generated from field: optional perfetto.protos.AndroidJankCujMetric.Metrics timeline_metrics = 8;
     */
    timelineMetrics?: AndroidJankCujMetric_Metrics;
    /**
     * Metrics extracted from the trace slices.
     *
     * @generated from field: optional perfetto.protos.AndroidJankCujMetric.Metrics trace_metrics = 9;
     */
    traceMetrics?: AndroidJankCujMetric_Metrics;
    /**
     * Layer name of the surface where the cuj is drawn.
     *
     * @generated from field: optional string layer_name = 11;
     */
    layerName: string;
};
/**
 * Describes the message perfetto.protos.AndroidJankCujMetric.Cuj.
 * Use `create(AndroidJankCujMetric_CujSchema)` to create a new message.
 */
export declare const AndroidJankCujMetric_CujSchema: GenMessage<AndroidJankCujMetric_Cuj>;
/**
 * Next id: 10
 *
 * @generated from message perfetto.protos.AndroidJankCujMetric.Frame
 */
export type AndroidJankCujMetric_Frame = Message<"perfetto.protos.AndroidJankCujMetric.Frame"> & {
    /**
     * Index of the frame within the single user journey.
     *
     * @generated from field: optional int64 frame_number = 1;
     */
    frameNumber: bigint;
    /**
     * VSYNC ID of the frame.
     *
     * @generated from field: optional int64 vsync = 2;
     */
    vsync: bigint;
    /**
     * @generated from field: optional int64 ts = 3;
     */
    ts: bigint;
    /**
     * @generated from field: optional int64 dur = 4;
     */
    dur: bigint;
    /**
     * @generated from field: optional int64 dur_expected = 7;
     */
    durExpected: bigint;
    /**
     * Whether the app process missed the frame deadline.
     * Only set for the App frames. Always left unset for SF frames.
     *
     * @generated from field: optional bool app_missed = 5;
     */
    appMissed: boolean;
    /**
     * Whether SF missed the frame deadline.
     *
     * @generated from field: optional bool sf_missed = 6;
     */
    sfMissed: boolean;
    /**
     * Whether the SF callback missed before emitting jank metrics.
     * SF callback is used to get the jank classification.
     *
     * @generated from field: optional bool sf_callback_missed = 8;
     */
    sfCallbackMissed: boolean;
    /**
     * Whether the HWUI callback missed before emitting jank metrics.
     * HWUI callback is used to get the frame duration.
     *
     * @generated from field: optional bool hwui_callback_missed = 9;
     */
    hwuiCallbackMissed: boolean;
};
/**
 * Describes the message perfetto.protos.AndroidJankCujMetric.Frame.
 * Use `create(AndroidJankCujMetric_FrameSchema)` to create a new message.
 */
export declare const AndroidJankCujMetric_FrameSchema: GenMessage<AndroidJankCujMetric_Frame>;
/**
 * Next id: 18
 *
 * @generated from message perfetto.protos.AndroidJankCujMetric.Metrics
 */
export type AndroidJankCujMetric_Metrics = Message<"perfetto.protos.AndroidJankCujMetric.Metrics"> & {
    /**
     * Overall number of frames within the CUJ.
     *
     * @generated from field: optional int64 total_frames = 1;
     */
    totalFrames: bigint;
    /**
     * Number of missed frames.
     *
     * @generated from field: optional int64 missed_frames = 2;
     */
    missedFrames: bigint;
    /**
     * Number of frames missed due to the app missing the deadline.
     *
     * @generated from field: optional int64 missed_app_frames = 3;
     */
    missedAppFrames: bigint;
    /**
     * Number of frames missed due to SF.
     *
     * @generated from field: optional int64 missed_sf_frames = 4;
     */
    missedSfFrames: bigint;
    /**
     * Number of successive frames missed.
     * Not available in timeline_metrics and trace_metrics.
     *
     * @generated from field: optional int64 missed_frames_max_successive = 5;
     */
    missedFramesMaxSuccessive: bigint;
    /**
     * Max frame duration in nanoseconds.
     *
     * @generated from field: optional int64 frame_dur_max = 6;
     */
    frameDurMax: bigint;
    /**
     * Average frame duration in nanoseconds.
     * Not available in counter_metrics.
     *
     * @generated from field: optional int64 frame_dur_avg = 7;
     */
    frameDurAvg: bigint;
    /**
     * Median frame duration in nanoseconds.
     * Not available in counter_metrics.
     *
     * @generated from field: optional int64 frame_dur_p50 = 8;
     */
    frameDurP50: bigint;
    /**
     * P90 frame duration in nanoseconds.
     * Not available in counter_metrics.
     *
     * @generated from field: optional int64 frame_dur_p90 = 9;
     */
    frameDurP90: bigint;
    /**
     * P95 frame duration in nanoseconds.
     * Not available in counter_metrics.
     *
     * @generated from field: optional int64 frame_dur_p95 = 10;
     */
    frameDurP95: bigint;
    /**
     * P99 frame duration in nanoseconds.
     * Not available in counter_metrics.
     *
     * @generated from field: optional int64 frame_dur_p99 = 11;
     */
    frameDurP99: bigint;
    /**
     * Median frame duration in milliseconds.
     * Not available in counter_metrics.
     *
     * @generated from field: optional double frame_dur_ms_p50 = 12;
     */
    frameDurMsP50: number;
    /**
     * P90 frame duration in milliseconds.
     * Not available in counter_metrics.
     *
     * @generated from field: optional double frame_dur_ms_p90 = 13;
     */
    frameDurMsP90: number;
    /**
     * P95 frame duration in milliseconds.
     * Not available in counter_metrics.
     *
     * @generated from field: optional double frame_dur_ms_p95 = 14;
     */
    frameDurMsP95: number;
    /**
     * P99 frame duration in milliseconds.
     * Not available in counter_metrics.
     *
     * @generated from field: optional double frame_dur_ms_p99 = 15;
     */
    frameDurMsP99: number;
    /**
     * Number of frames with missed SF callback.
     *
     * @generated from field: optional int64 sf_callback_missed_frames = 16;
     */
    sfCallbackMissedFrames: bigint;
    /**
     * Number of frames with missed HWUI callback.
     *
     * @generated from field: optional int64 hwui_callback_missed_frames = 17;
     */
    hwuiCallbackMissedFrames: bigint;
};
/**
 * Describes the message perfetto.protos.AndroidJankCujMetric.Metrics.
 * Use `create(AndroidJankCujMetric_MetricsSchema)` to create a new message.
 */
export declare const AndroidJankCujMetric_MetricsSchema: GenMessage<AndroidJankCujMetric_Metrics>;
//# sourceMappingURL=jank_cuj_metric_pb.d.ts.map