import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/perfetto/trace/track_event/chrome_frame_reporter.proto.
 */
export declare const file_protos_perfetto_trace_track_event_chrome_frame_reporter: GenFile;
/**
 * @generated from message perfetto.protos.ChromeFrameReporter
 */
export type ChromeFrameReporter = Message<"perfetto.protos.ChromeFrameReporter"> & {
    /**
     * @generated from field: optional perfetto.protos.ChromeFrameReporter.State state = 1;
     */
    state: ChromeFrameReporter_State;
    /**
     * The reason is set only if |state| is not |STATE_UPDATED_ALL|.
     *
     * @generated from field: optional perfetto.protos.ChromeFrameReporter.FrameDropReason reason = 2;
     */
    reason: ChromeFrameReporter_FrameDropReason;
    /**
     * @generated from field: optional uint64 frame_source = 3;
     */
    frameSource: bigint;
    /**
     * @generated from field: optional uint64 frame_sequence = 4;
     */
    frameSequence: bigint;
    /**
     * If this is a droped frame (i.e. if |state| is set to |STATE_DROPPED| or
     * |STATE_PRESENTED_PARTIAL|), then indicates whether this frame impacts
     * smoothness.
     *
     * @generated from field: optional bool affects_smoothness = 5;
     */
    affectsSmoothness: boolean;
    /**
     * The type of active scroll.
     *
     * @generated from field: optional perfetto.protos.ChromeFrameReporter.ScrollState scroll_state = 6;
     */
    scrollState: ChromeFrameReporter_ScrollState;
    /**
     * If any main thread animation is active during this frame.
     *
     * @generated from field: optional bool has_main_animation = 7;
     */
    hasMainAnimation: boolean;
    /**
     * If any compositor thread animation is active during this frame.
     *
     * @generated from field: optional bool has_compositor_animation = 8;
     */
    hasCompositorAnimation: boolean;
    /**
     * If any touch-driven UX (not scroll) is active during this frame.
     *
     * @generated from field: optional bool has_smooth_input_main = 9;
     */
    hasSmoothInputMain: boolean;
    /**
     * Whether the frame contained any missing content (i.e. whether there was
     * checkerboarding in the frame).  If has_missing_content,
     * checkerboarded_needs_raster and checkerboarded_needs_record all have
     * values, has_missing_content should equal checkerboarded_needs_raster ||
     * checkerboarded_needs_record.
     *
     * @generated from field: optional bool has_missing_content = 10;
     */
    hasMissingContent: boolean;
    /**
     * The id of layer_tree_host that the frame has been produced for.
     *
     * @generated from field: optional uint64 layer_tree_host_id = 11;
     */
    layerTreeHostId: bigint;
    /**
     * If total latency of PipelineReporter exceeds a certain limit.
     *
     * @generated from field: optional bool has_high_latency = 12;
     */
    hasHighLatency: boolean;
    /**
     * Indicate if the frame is "FORKED" (i.e. a PipelineReporter event starts at
     * the same frame sequence as another PipelineReporter) or "BACKFILL"
     * (i.e. dropped frames when there are no partial compositor updates).
     *
     * @generated from field: optional perfetto.protos.ChromeFrameReporter.FrameType frame_type = 13;
     */
    frameType: ChromeFrameReporter_FrameType;
    /**
     * The breakdown stage of PipelineReporter that is most likely accountable for
     * high latency.
     *
     * @generated from field: repeated string high_latency_contribution_stage = 14;
     */
    highLatencyContributionStage: string[];
    /**
     * Whether the frame contained any content that is not fully rastered.
     *
     * @generated from field: optional bool checkerboarded_needs_raster = 15;
     */
    checkerboardedNeedsRaster: boolean;
    /**
     * Whether the frame contained any content that is not fully recorded.
     *
     * @generated from field: optional bool checkerboarded_needs_record = 16;
     */
    checkerboardedNeedsRecord: boolean;
};
/**
 * Describes the message perfetto.protos.ChromeFrameReporter.
 * Use `create(ChromeFrameReporterSchema)` to create a new message.
 */
export declare const ChromeFrameReporterSchema: GenMessage<ChromeFrameReporter>;
/**
 * @generated from enum perfetto.protos.ChromeFrameReporter.State
 */
export declare enum ChromeFrameReporter_State {
    /**
     * The frame did not have any updates to present.
     *
     * @generated from enum value: STATE_NO_UPDATE_DESIRED = 0;
     */
    NO_UPDATE_DESIRED = 0,
    /**
     * The frame presented all the desired updates (i.e. any updates requested
     * from both the compositor thread and main-threads were handled).
     *
     * @generated from enum value: STATE_PRESENTED_ALL = 1;
     */
    PRESENTED_ALL = 1,
    /**
     * The frame was presented with some updates, but also missed some updates
     * (e.g. missed updates from the main-thread, but included updates from the
     * compositor thread).
     *
     * @generated from enum value: STATE_PRESENTED_PARTIAL = 2;
     */
    PRESENTED_PARTIAL = 2,
    /**
     * The frame was dropped, i.e. some updates were desired for the frame, but
     * was not presented.
     *
     * @generated from enum value: STATE_DROPPED = 3;
     */
    DROPPED = 3
}
/**
 * Describes the enum perfetto.protos.ChromeFrameReporter.State.
 */
export declare const ChromeFrameReporter_StateSchema: GenEnum<ChromeFrameReporter_State>;
/**
 * @generated from enum perfetto.protos.ChromeFrameReporter.FrameDropReason
 */
export declare enum ChromeFrameReporter_FrameDropReason {
    /**
     * @generated from enum value: REASON_UNSPECIFIED = 0;
     */
    REASON_UNSPECIFIED = 0,
    /**
     * Frame was dropped by the display-compositor.
     * The display-compositor may drop a frame some times (e.g. the frame missed
     * the deadline, or was blocked on surface-sync, etc.)
     *
     * @generated from enum value: REASON_DISPLAY_COMPOSITOR = 1;
     */
    REASON_DISPLAY_COMPOSITOR = 1,
    /**
     * Frame was dropped because of the main-thread.
     * The main-thread may cause a frame to be dropped, e.g. if the main-thread
     * is running expensive javascript, or doing a lot of layout updates, etc.
     *
     * @generated from enum value: REASON_MAIN_THREAD = 2;
     */
    REASON_MAIN_THREAD = 2,
    /**
     * Frame was dropped by the client compositor.
     * The client compositor can drop some frames too (e.g. attempting to
     * recover latency, missing the deadline, etc.).
     *
     * @generated from enum value: REASON_CLIENT_COMPOSITOR = 3;
     */
    REASON_CLIENT_COMPOSITOR = 3
}
/**
 * Describes the enum perfetto.protos.ChromeFrameReporter.FrameDropReason.
 */
export declare const ChromeFrameReporter_FrameDropReasonSchema: GenEnum<ChromeFrameReporter_FrameDropReason>;
/**
 * @generated from enum perfetto.protos.ChromeFrameReporter.ScrollState
 */
export declare enum ChromeFrameReporter_ScrollState {
    /**
     * @generated from enum value: SCROLL_NONE = 0;
     */
    SCROLL_NONE = 0,
    /**
     * @generated from enum value: SCROLL_MAIN_THREAD = 1;
     */
    SCROLL_MAIN_THREAD = 1,
    /**
     * @generated from enum value: SCROLL_COMPOSITOR_THREAD = 2;
     */
    SCROLL_COMPOSITOR_THREAD = 2,
    /**
     * @generated from enum value: SCROLL_RASTER = 3;
     */
    SCROLL_RASTER = 3,
    /**
     * Used when it can't be determined whether a scroll is in progress or not.
     *
     * @generated from enum value: SCROLL_UNKNOWN = 4;
     */
    SCROLL_UNKNOWN = 4
}
/**
 * Describes the enum perfetto.protos.ChromeFrameReporter.ScrollState.
 */
export declare const ChromeFrameReporter_ScrollStateSchema: GenEnum<ChromeFrameReporter_ScrollState>;
/**
 * @generated from enum perfetto.protos.ChromeFrameReporter.FrameType
 */
export declare enum ChromeFrameReporter_FrameType {
    /**
     * @generated from enum value: FORKED = 0;
     */
    FORKED = 0,
    /**
     * @generated from enum value: BACKFILL = 1;
     */
    BACKFILL = 1
}
/**
 * Describes the enum perfetto.protos.ChromeFrameReporter.FrameType.
 */
export declare const ChromeFrameReporter_FrameTypeSchema: GenEnum<ChromeFrameReporter_FrameType>;
//# sourceMappingURL=chrome_frame_reporter_pb.d.ts.map