import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/perfetto/metrics/chrome/scroll_jank_v3.proto.
 */
export declare const file_protos_perfetto_metrics_chrome_scroll_jank_v3: GenFile;
/**
 * @generated from message perfetto.protos.ChromeScrollJankV3
 */
export type ChromeScrollJankV3 = Message<"perfetto.protos.ChromeScrollJankV3"> & {
    /**
     * Total count of unique frames in the trace.
     *
     * @generated from field: optional int64 trace_num_frames = 1;
     */
    traceNumFrames: bigint;
    /**
     * Number of frames in the trace that had missed vsyncs.
     *
     * @generated from field: optional int64 trace_num_janky_frames = 2;
     */
    traceNumJankyFrames: bigint;
    /**
     * Computed as: `100 * trace_num_janky_frames /
     * trace_num_frames`.
     *
     * @generated from field: optional double trace_scroll_jank_percentage = 3;
     */
    traceScrollJankPercentage: number;
    /**
     * Vsync interval at the time of recording the trace.
     *
     * @generated from field: optional double vsync_interval_ms = 4;
     */
    vsyncIntervalMs: number;
    /**
     * @generated from field: repeated perfetto.protos.ChromeScrollJankV3.Scroll scrolls = 5;
     */
    scrolls: ChromeScrollJankV3_Scroll[];
};
/**
 * Describes the message perfetto.protos.ChromeScrollJankV3.
 * Use `create(ChromeScrollJankV3Schema)` to create a new message.
 */
export declare const ChromeScrollJankV3Schema: GenMessage<ChromeScrollJankV3>;
/**
 * Per-scroll metrics.
 *
 * @generated from message perfetto.protos.ChromeScrollJankV3.Scroll
 */
export type ChromeScrollJankV3_Scroll = Message<"perfetto.protos.ChromeScrollJankV3.Scroll"> & {
    /**
     * Total count of unique frames during this scroll.
     *
     * @generated from field: optional int64 num_frames = 1;
     */
    numFrames: bigint;
    /**
     * Number of frames during this scroll that had missed vsyncs.
     *
     * @generated from field: optional int64 num_janky_frames = 2;
     */
    numJankyFrames: bigint;
    /**
     * Computed as: `100 * num_janky_frames / num_frames`.
     *
     * @generated from field: optional double scroll_jank_percentage = 3;
     */
    scrollJankPercentage: number;
    /**
     * Maximum `delay_since_last_frame` for janky frames during this scroll
     * (i.e. maximum `delay_since_last_frame` from the `scroll_jank_causes`
     * repeated field below).
     * This is measured in units of vsync interval. For example, a value of 2
     * means the delay was 2x the vsync interval.
     *
     * @generated from field: optional double max_delay_since_last_frame = 4;
     */
    maxDelaySinceLastFrame: number;
    /**
     * @generated from field: repeated perfetto.protos.ChromeScrollJankV3.Scroll.ScrollJankCause scroll_jank_causes = 5;
     */
    scrollJankCauses: ChromeScrollJankV3_Scroll_ScrollJankCause[];
};
/**
 * Describes the message perfetto.protos.ChromeScrollJankV3.Scroll.
 * Use `create(ChromeScrollJankV3_ScrollSchema)` to create a new message.
 */
export declare const ChromeScrollJankV3_ScrollSchema: GenMessage<ChromeScrollJankV3_Scroll>;
/**
 * The primary cause and sub-cause for scroll jank, one for each jank.
 * There are exactly `num_janky_frames` items in this field.
 *
 * @generated from message perfetto.protos.ChromeScrollJankV3.Scroll.ScrollJankCause
 */
export type ChromeScrollJankV3_Scroll_ScrollJankCause = Message<"perfetto.protos.ChromeScrollJankV3.Scroll.ScrollJankCause"> & {
    /**
     * May be empty, if a cause is not available.
     *
     * @generated from field: optional string cause = 1;
     */
    cause: string;
    /**
     * May be empty, if a sub-cause is not available.
     *
     * @generated from field: optional string sub_cause = 2;
     */
    subCause: string;
    /**
     * Number of vsyncs elapsed since the previous frame was presented: will
     * be > 1.0 since this was a "janky" frame. For example, a value of 2
     * means the delay was 2x the vsync interval.
     *
     * @generated from field: optional double delay_since_last_frame = 3;
     */
    delaySinceLastFrame: number;
};
/**
 * Describes the message perfetto.protos.ChromeScrollJankV3.Scroll.ScrollJankCause.
 * Use `create(ChromeScrollJankV3_Scroll_ScrollJankCauseSchema)` to create a new message.
 */
export declare const ChromeScrollJankV3_Scroll_ScrollJankCauseSchema: GenMessage<ChromeScrollJankV3_Scroll_ScrollJankCause>;
//# sourceMappingURL=scroll_jank_v3_pb.d.ts.map