import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/perfetto/trace/android/camera_event.proto.
 */
export declare const file_protos_perfetto_trace_android_camera_event: GenFile;
/**
 * A profiling event corresponding to a single camera frame. This message
 * collects important details and timestamps involved in producing a single
 * camera frame.
 * Next ID: 17
 *
 * @generated from message perfetto.protos.AndroidCameraFrameEvent
 */
export type AndroidCameraFrameEvent = Message<"perfetto.protos.AndroidCameraFrameEvent"> & {
    /**
     * Identifier for the CameraCaptureSession this frame originates from. See:
     * https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession
     *
     * @generated from field: optional uint64 session_id = 1;
     */
    sessionId: bigint;
    /**
     * Identifier for the camera sensor that is the source of this frame. This may
     * be either a physical or logical camera (up to vendor interpretation).
     *
     * @generated from field: optional uint32 camera_id = 2;
     */
    cameraId: number;
    /**
     * The frame number identifying this frame on this camera.
     *
     * @generated from field: optional int64 frame_number = 3;
     */
    frameNumber: bigint;
    /**
     * Identifier for the CaptureRequest. See:
     * https://developer.android.com/reference/android/hardware/camera2/CaptureRequest
     *
     * If multiple cameras are streaming simultaneously, the request_id may be
     * used to identify which frames were captured in service of the same request.
     *
     * @generated from field: optional int64 request_id = 4;
     */
    requestId: bigint;
    /**
     * The CLOCK_BOOTTIME timestamp at which the camera framework request is
     * received by the camera HAL pipeline. Note that this request may wait for
     * some time before processing actually begins. See also
     * request_processing_started_ns.
     *
     * @generated from field: optional int64 request_received_ns = 5;
     */
    requestReceivedNs: bigint;
    /**
     * The CLOCK_BOOTTIME timestamp at which the framework request is accepted for
     * processing by the camera HAL pipeline. This is the time at which the
     * pipeline actually begins to work on the request.
     *
     * @generated from field: optional int64 request_processing_started_ns = 6;
     */
    requestProcessingStartedNs: bigint;
    /**
     * The CLOCK_BOOTTIME timestamp at which the sensor begins its exposure.
     *
     * @generated from field: optional int64 start_of_exposure_ns = 7;
     */
    startOfExposureNs: bigint;
    /**
     * The CLOCK_BOOTTIME timestamp corresponding to the sensor start of frame
     * event.
     *
     * @generated from field: optional int64 start_of_frame_ns = 8;
     */
    startOfFrameNs: bigint;
    /**
     * The CLOCK_BOOTTIME timestamp at which the camera HAL has sent all responses
     * for the frame.
     *
     * @generated from field: optional int64 responses_all_sent_ns = 9;
     */
    responsesAllSentNs: bigint;
    /**
     * @generated from field: optional perfetto.protos.AndroidCameraFrameEvent.CaptureResultStatus capture_result_status = 10;
     */
    captureResultStatus: AndroidCameraFrameEvent_CaptureResultStatus;
    /**
     * The number of sensor frames that were skipped between this frame and the
     * previous frame. Under normal operation, this should be zero. Any number
     * greater than zero indicates dropped sensor frames.
     *
     * @generated from field: optional int32 skipped_sensor_frames = 11;
     */
    skippedSensorFrames: number;
    /**
     * The value of CONTROL_CAPTURE_INTENT. See:
     * https://developer.android.com/reference/android/hardware/camera2/CaptureRequest#CONTROL_CAPTURE_INTENT
     *
     * @generated from field: optional int32 capture_intent = 12;
     */
    captureIntent: number;
    /**
     * The number of streams in the capture request.
     *
     * @generated from field: optional int32 num_streams = 13;
     */
    numStreams: number;
    /**
     * @generated from field: repeated perfetto.protos.AndroidCameraFrameEvent.CameraNodeProcessingDetails node_processing_details = 14;
     */
    nodeProcessingDetails: AndroidCameraFrameEvent_CameraNodeProcessingDetails[];
    /**
     * These fields capture vendor-specific additions to this proto message. In
     * practice `vendor_data` typically contains a serialized message of the
     * vendor's design, and `vendor_data_version` is incremented each time there
     * is a backwards incompatible change made to the message.
     *
     * @generated from field: optional int32 vendor_data_version = 15;
     */
    vendorDataVersion: number;
    /**
     * @generated from field: optional bytes vendor_data = 16;
     */
    vendorData: Uint8Array;
};
/**
 * Describes the message perfetto.protos.AndroidCameraFrameEvent.
 * Use `create(AndroidCameraFrameEventSchema)` to create a new message.
 */
export declare const AndroidCameraFrameEventSchema: GenMessage<AndroidCameraFrameEvent>;
/**
 * A profiling event corresponding to a single node processing within the camera
 * pipeline. Intuitively this corresponds to a single stage of processing to
 * produce a camera frame.
 * Next ID: 6
 *
 * @generated from message perfetto.protos.AndroidCameraFrameEvent.CameraNodeProcessingDetails
 */
export type AndroidCameraFrameEvent_CameraNodeProcessingDetails = Message<"perfetto.protos.AndroidCameraFrameEvent.CameraNodeProcessingDetails"> & {
    /**
     * @generated from field: optional int64 node_id = 1;
     */
    nodeId: bigint;
    /**
     * The timestamp at which node processing begins to run.
     *
     * @generated from field: optional int64 start_processing_ns = 2;
     */
    startProcessingNs: bigint;
    /**
     * The timestamp at which node processing finishes running.
     *
     * @generated from field: optional int64 end_processing_ns = 3;
     */
    endProcessingNs: bigint;
    /**
     * The delay between inputs becoming ready and the node actually beginning to
     * run.
     *
     * @generated from field: optional int64 scheduling_latency_ns = 4;
     */
    schedulingLatencyNs: bigint;
};
/**
 * Describes the message perfetto.protos.AndroidCameraFrameEvent.CameraNodeProcessingDetails.
 * Use `create(AndroidCameraFrameEvent_CameraNodeProcessingDetailsSchema)` to create a new message.
 */
export declare const AndroidCameraFrameEvent_CameraNodeProcessingDetailsSchema: GenMessage<AndroidCameraFrameEvent_CameraNodeProcessingDetails>;
/**
 * The error status, if any, reported to the camera framework. Any status
 * other than STATUS_OK indicates a dropped frame.
 * Next Enum: 6
 *
 * @generated from enum perfetto.protos.AndroidCameraFrameEvent.CaptureResultStatus
 */
export declare enum AndroidCameraFrameEvent_CaptureResultStatus {
    /**
     * @generated from enum value: STATUS_UNSPECIFIED = 0;
     */
    STATUS_UNSPECIFIED = 0,
    /**
     * @generated from enum value: STATUS_OK = 1;
     */
    STATUS_OK = 1,
    /**
     * Early metadata was returned to the camera framework with an error.
     *
     * @generated from enum value: STATUS_EARLY_METADATA_ERROR = 2;
     */
    STATUS_EARLY_METADATA_ERROR = 2,
    /**
     * Final metadata was returned to the camera framework with an error.
     *
     * @generated from enum value: STATUS_FINAL_METADATA_ERROR = 3;
     */
    STATUS_FINAL_METADATA_ERROR = 3,
    /**
     * One or more buffers were returned to the camera framework with an error.
     *
     * @generated from enum value: STATUS_BUFFER_ERROR = 4;
     */
    STATUS_BUFFER_ERROR = 4,
    /**
     * The frame was dropped as a result of a flush operation.
     *
     * @generated from enum value: STATUS_FLUSH_ERROR = 5;
     */
    STATUS_FLUSH_ERROR = 5
}
/**
 * Describes the enum perfetto.protos.AndroidCameraFrameEvent.CaptureResultStatus.
 */
export declare const AndroidCameraFrameEvent_CaptureResultStatusSchema: GenEnum<AndroidCameraFrameEvent_CaptureResultStatus>;
/**
 * A profiling event that may be emitted periodically (i.e., at a slower rate
 * than `AndroidCameraFrameEvent`s) to record fixed and aggregated camera
 * session-specific values.
 *
 * @generated from message perfetto.protos.AndroidCameraSessionStats
 */
export type AndroidCameraSessionStats = Message<"perfetto.protos.AndroidCameraSessionStats"> & {
    /**
     * Identifier for the CameraCaptureSession this frame originates from. See:
     * https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession
     *
     * @generated from field: optional uint64 session_id = 1;
     */
    sessionId: bigint;
    /**
     * @generated from field: optional perfetto.protos.AndroidCameraSessionStats.CameraGraph graph = 2;
     */
    graph?: AndroidCameraSessionStats_CameraGraph;
};
/**
 * Describes the message perfetto.protos.AndroidCameraSessionStats.
 * Use `create(AndroidCameraSessionStatsSchema)` to create a new message.
 */
export declare const AndroidCameraSessionStatsSchema: GenMessage<AndroidCameraSessionStats>;
/**
 * Although vendor implementations may vary, camera pipeline processing is
 * typically arranged into a directed graph-like structure. This message is
 * used to record that graph.
 *
 * @generated from message perfetto.protos.AndroidCameraSessionStats.CameraGraph
 */
export type AndroidCameraSessionStats_CameraGraph = Message<"perfetto.protos.AndroidCameraSessionStats.CameraGraph"> & {
    /**
     * @generated from field: repeated perfetto.protos.AndroidCameraSessionStats.CameraGraph.CameraNode nodes = 1;
     */
    nodes: AndroidCameraSessionStats_CameraGraph_CameraNode[];
    /**
     * @generated from field: repeated perfetto.protos.AndroidCameraSessionStats.CameraGraph.CameraEdge edges = 2;
     */
    edges: AndroidCameraSessionStats_CameraGraph_CameraEdge[];
};
/**
 * Describes the message perfetto.protos.AndroidCameraSessionStats.CameraGraph.
 * Use `create(AndroidCameraSessionStats_CameraGraphSchema)` to create a new message.
 */
export declare const AndroidCameraSessionStats_CameraGraphSchema: GenMessage<AndroidCameraSessionStats_CameraGraph>;
/**
 * @generated from message perfetto.protos.AndroidCameraSessionStats.CameraGraph.CameraNode
 */
export type AndroidCameraSessionStats_CameraGraph_CameraNode = Message<"perfetto.protos.AndroidCameraSessionStats.CameraGraph.CameraNode"> & {
    /**
     * @generated from field: optional int64 node_id = 1;
     */
    nodeId: bigint;
    /**
     * A list of inputs consumed by this node.
     *
     * @generated from field: repeated int64 input_ids = 2;
     */
    inputIds: bigint[];
    /**
     * A list of outputs produced by this node.
     *
     * @generated from field: repeated int64 output_ids = 3;
     */
    outputIds: bigint[];
    /**
     * These fields capture vendor-specific additions to this proto message. In
     * practice `vendor_data` typically contains a serialized message of the
     * vendor's design, and `vendor_data_version` is incremented each time there
     * is a backwards incompatible change made to the message.
     *
     * @generated from field: optional int32 vendor_data_version = 4;
     */
    vendorDataVersion: number;
    /**
     * @generated from field: optional bytes vendor_data = 5;
     */
    vendorData: Uint8Array;
};
/**
 * Describes the message perfetto.protos.AndroidCameraSessionStats.CameraGraph.CameraNode.
 * Use `create(AndroidCameraSessionStats_CameraGraph_CameraNodeSchema)` to create a new message.
 */
export declare const AndroidCameraSessionStats_CameraGraph_CameraNodeSchema: GenMessage<AndroidCameraSessionStats_CameraGraph_CameraNode>;
/**
 * An adjacency list describing connections between CameraNodes, mapping
 * nodes and their outputs to other nodes that consume them as inputs.
 *
 * @generated from message perfetto.protos.AndroidCameraSessionStats.CameraGraph.CameraEdge
 */
export type AndroidCameraSessionStats_CameraGraph_CameraEdge = Message<"perfetto.protos.AndroidCameraSessionStats.CameraGraph.CameraEdge"> & {
    /**
     * The pair of IDs identifying the node and output connected by this edge.
     *
     * @generated from field: optional int64 output_node_id = 1;
     */
    outputNodeId: bigint;
    /**
     * @generated from field: optional int64 output_id = 2;
     */
    outputId: bigint;
    /**
     * The pair of IDs identifying the node and input connected by this edge.
     *
     * @generated from field: optional int64 input_node_id = 3;
     */
    inputNodeId: bigint;
    /**
     * @generated from field: optional int64 input_id = 4;
     */
    inputId: bigint;
    /**
     * These fields capture vendor-specific additions to this proto message. In
     * practice `vendor_data` typically contains a serialized message of the
     * vendor's design, and `vendor_data_version` is incremented each time there
     * is a backwards incompatible change made to the message.
     *
     * @generated from field: optional int32 vendor_data_version = 5;
     */
    vendorDataVersion: number;
    /**
     * @generated from field: optional bytes vendor_data = 6;
     */
    vendorData: Uint8Array;
};
/**
 * Describes the message perfetto.protos.AndroidCameraSessionStats.CameraGraph.CameraEdge.
 * Use `create(AndroidCameraSessionStats_CameraGraph_CameraEdgeSchema)` to create a new message.
 */
export declare const AndroidCameraSessionStats_CameraGraph_CameraEdgeSchema: GenMessage<AndroidCameraSessionStats_CameraGraph_CameraEdge>;
//# sourceMappingURL=camera_event_pb.d.ts.map