import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { BlurRegion, ColorProto, ColorTransformProto, InputWindowInfoProto, RegionProto, SizeProto, TransformProto, TrustedOverlay } from "./surfaceflinger_common_pb";
import type { RectProto } from "./graphics/rect_pb";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/perfetto/trace/android/surfaceflinger_layers.proto.
 */
export declare const file_protos_perfetto_trace_android_surfaceflinger_layers: GenFile;
/**
 * Message used by Winscope to process legacy trace files.
 * Represents a file full of surface flinger trace entries.
 * Encoded, it should start with 0x4c 0x59 0x52 0x54 0x52 0x41 0x43 0x45
 * (.LYRTRACE), such that they can be easily identified.
 *
 * @generated from message perfetto.protos.LayersTraceFileProto
 */
export type LayersTraceFileProto = Message<"perfetto.protos.LayersTraceFileProto"> & {
    /**
     * Must be the first field, set to value in MagicNumber
     *
     * @generated from field: optional fixed64 magic_number = 1;
     */
    magicNumber: bigint;
    /**
     * @generated from field: repeated perfetto.protos.LayersSnapshotProto entry = 2;
     */
    entry: LayersSnapshotProto[];
    /**
     * Offset between real-time clock and elapsed time clock in nanoseconds.
     * Calculated as: systemTime(SYSTEM_TIME_REALTIME) -
     * systemTime(SYSTEM_TIME_MONOTONIC)
     *
     * @generated from field: optional fixed64 real_to_elapsed_time_offset_nanos = 3;
     */
    realToElapsedTimeOffsetNanos: bigint;
};
/**
 * Describes the message perfetto.protos.LayersTraceFileProto.
 * Use `create(LayersTraceFileProtoSchema)` to create a new message.
 */
export declare const LayersTraceFileProtoSchema: GenMessage<LayersTraceFileProto>;
/**
 * constant; MAGIC_NUMBER = (long) MAGIC_NUMBER_H << 32 |
 * MagicNumber.MAGIC_NUMBER_L (this is needed because enums have to be 32 bits
 * and there's no nice way to put 64bit constants into .proto files.
 *
 * @generated from enum perfetto.protos.LayersTraceFileProto.MagicNumber
 */
export declare enum LayersTraceFileProto_MagicNumber {
    /**
     * @generated from enum value: INVALID = 0;
     */
    INVALID = 0,
    /**
     * LYRT (little-endian ASCII)
     *
     * @generated from enum value: MAGIC_NUMBER_L = 1414682956;
     */
    MAGIC_NUMBER_L = 1414682956,
    /**
     * RACE (little-endian ASCII)
     *
     * @generated from enum value: MAGIC_NUMBER_H = 1162035538;
     */
    MAGIC_NUMBER_H = 1162035538
}
/**
 * Describes the enum perfetto.protos.LayersTraceFileProto.MagicNumber.
 */
export declare const LayersTraceFileProto_MagicNumberSchema: GenEnum<LayersTraceFileProto_MagicNumber>;
/**
 * @generated from message perfetto.protos.LayersSnapshotProto
 */
export type LayersSnapshotProto = Message<"perfetto.protos.LayersSnapshotProto"> & {
    /**
     * elapsed realtime in nanos since boot of when this entry was logged
     *
     * @generated from field: optional sfixed64 elapsed_realtime_nanos = 1;
     */
    elapsedRealtimeNanos: bigint;
    /**
     * SurfaceFlinger's stage where the snapshot was triggered.
     * Currently either "visibleRegionsDirty" or "bufferLatched".
     *
     * @generated from field: optional string where = 2;
     */
    where: string;
    /**
     * @generated from field: optional perfetto.protos.LayersProto layers = 3;
     */
    layers?: LayersProto;
    /**
     * Blob for the current HWC information for all layers, reported by dumpsys.
     * Example:
     *   "maxDownScale: 4, maxFullWidth: 8192, HWState: 1, AssignedState: 3, ..."
     *
     * @generated from field: optional string hwc_blob = 4;
     */
    hwcBlob: string;
    /**
     * Excludes state sent during composition like visible region and composition
     * type.
     *
     * @generated from field: optional bool excludes_composition_state = 5;
     */
    excludesCompositionState: boolean;
    /**
     * Number of missed entries since the last entry was recorded.
     *
     * @generated from field: optional uint32 missed_entries = 6;
     */
    missedEntries: number;
    /**
     * @generated from field: repeated perfetto.protos.DisplayProto displays = 7;
     */
    displays: DisplayProto[];
    /**
     * @generated from field: optional int64 vsync_id = 8;
     */
    vsyncId: bigint;
};
/**
 * Describes the message perfetto.protos.LayersSnapshotProto.
 * Use `create(LayersSnapshotProtoSchema)` to create a new message.
 */
export declare const LayersSnapshotProtoSchema: GenMessage<LayersSnapshotProto>;
/**
 * Contains a list of all layers.
 *
 * @generated from message perfetto.protos.LayersProto
 */
export type LayersProto = Message<"perfetto.protos.LayersProto"> & {
    /**
     * @generated from field: repeated perfetto.protos.LayerProto layers = 1;
     */
    layers: LayerProto[];
};
/**
 * Describes the message perfetto.protos.LayersProto.
 * Use `create(LayersProtoSchema)` to create a new message.
 */
export declare const LayersProtoSchema: GenMessage<LayersProto>;
/**
 * @generated from message perfetto.protos.DisplayProto
 */
export type DisplayProto = Message<"perfetto.protos.DisplayProto"> & {
    /**
     * @generated from field: optional uint64 id = 1;
     */
    id: bigint;
    /**
     * Display descriptor, e.g. "Built-In Screen"
     *
     * @generated from field: optional string name = 2;
     */
    name: string;
    /**
     * @generated from field: optional uint32 layer_stack = 3;
     */
    layerStack: number;
    /**
     * @generated from field: optional perfetto.protos.SizeProto size = 4;
     */
    size?: SizeProto;
    /**
     * @generated from field: optional perfetto.protos.RectProto layer_stack_space_rect = 5;
     */
    layerStackSpaceRect?: RectProto;
    /**
     * @generated from field: optional perfetto.protos.TransformProto transform = 6;
     */
    transform?: TransformProto;
    /**
     * @generated from field: optional bool is_virtual = 7;
     */
    isVirtual: boolean;
    /**
     * @generated from field: optional double dpi_x = 8;
     */
    dpiX: number;
    /**
     * @generated from field: optional double dpi_y = 9;
     */
    dpiY: number;
};
/**
 * Describes the message perfetto.protos.DisplayProto.
 * Use `create(DisplayProtoSchema)` to create a new message.
 */
export declare const DisplayProtoSchema: GenMessage<DisplayProto>;
/**
 * Information about each layer.
 *
 * @generated from message perfetto.protos.LayerProto
 */
export type LayerProto = Message<"perfetto.protos.LayerProto"> & {
    /**
     * unique id per layer.
     *
     * @generated from field: optional int32 id = 1;
     */
    id: number;
    /**
     * unique name per layer.
     * Example: "Wallpaper".
     *
     * @generated from field: optional string name = 2;
     */
    name: string;
    /**
     * list of children this layer may have. May be empty.
     *
     * @generated from field: repeated int32 children = 3 [packed = true];
     */
    children: number[];
    /**
     * list of layers that are z order relative to this layer.
     *
     * @generated from field: repeated int32 relatives = 4 [packed = true];
     */
    relatives: number[];
    /**
     * The type of layer.
     * Examples: "ContainerLayer", "BufferStateLayer".
     *
     * @generated from field: optional string type = 5;
     */
    type: string;
    /**
     * @generated from field: optional perfetto.protos.RegionProto transparent_region = 6;
     */
    transparentRegion?: RegionProto;
    /**
     * @generated from field: optional perfetto.protos.RegionProto visible_region = 7;
     */
    visibleRegion?: RegionProto;
    /**
     * @generated from field: optional perfetto.protos.RegionProto damage_region = 8;
     */
    damageRegion?: RegionProto;
    /**
     * @generated from field: optional uint32 layer_stack = 9;
     */
    layerStack: number;
    /**
     * The layer's z order. Can be z order in layer stack, relative to parent,
     * or relative to another layer specified in zOrderRelative.
     *
     * @generated from field: optional int32 z = 10;
     */
    z: number;
    /**
     * The layer's position on the display.
     *
     * @generated from field: optional perfetto.protos.PositionProto position = 11;
     */
    position?: PositionProto;
    /**
     * The layer's requested position.
     *
     * @generated from field: optional perfetto.protos.PositionProto requested_position = 12;
     */
    requestedPosition?: PositionProto;
    /**
     * The layer's size.
     *
     * @generated from field: optional perfetto.protos.SizeProto size = 13;
     */
    size?: SizeProto;
    /**
     * The layer's crop in its own bounds.
     *
     * @generated from field: optional perfetto.protos.RectProto crop = 14;
     */
    crop?: RectProto;
    /**
     * The layer's crop in its parent's bounds.
     *
     * @generated from field: optional perfetto.protos.RectProto final_crop = 15 [deprecated = true];
     * @deprecated
     */
    finalCrop?: RectProto;
    /**
     * @generated from field: optional bool is_opaque = 16;
     */
    isOpaque: boolean;
    /**
     * @generated from field: optional bool invalidate = 17;
     */
    invalidate: boolean;
    /**
     * Composition states's dataspace.
     * Examples: "STANDARD_BT709", "STANDARD_BT601_625".
     * See full enum in
     * frameworks/native/libs/nativewindow/include/android/data_space.h
     *
     * @generated from field: optional string dataspace = 18;
     */
    dataspace: string;
    /**
     * Buffer's pixel format
     * Examples: "PIXEL_FORMAT_TRANSLUCENT", "PIXEL_FORMAT_RGBA_8888".
     * See full enum in frameworks/native/libs/ui/include/ui/PixelFormat.h
     *
     * @generated from field: optional string pixel_format = 19;
     */
    pixelFormat: string;
    /**
     * The layer's actual color.
     *
     * @generated from field: optional perfetto.protos.ColorProto color = 20;
     */
    color?: ColorProto;
    /**
     * The layer's requested color.
     *
     * @generated from field: optional perfetto.protos.ColorProto requested_color = 21;
     */
    requestedColor?: ColorProto;
    /**
     * Can be any combination of
     *    hidden = 0x01
     *    opaque = 0x02,
     *    secure = 0x80,
     *
     * @generated from field: optional uint32 flags = 22;
     */
    flags: number;
    /**
     * The layer's actual transform
     *
     * @generated from field: optional perfetto.protos.TransformProto transform = 23;
     */
    transform?: TransformProto;
    /**
     * The layer's requested transform.
     *
     * @generated from field: optional perfetto.protos.TransformProto requested_transform = 24;
     */
    requestedTransform?: TransformProto;
    /**
     * The parent layer. This value can be null if there is no parent.
     *
     * @generated from field: optional int32 parent = 25;
     */
    parent: number;
    /**
     * The layer that this layer has a z order relative to. This value can be
     * null.
     *
     * @generated from field: optional int32 z_order_relative_of = 26;
     */
    zOrderRelativeOf: number;
    /**
     * This value can be null if there's nothing to draw.
     *
     * @generated from field: optional perfetto.protos.ActiveBufferProto active_buffer = 27;
     */
    activeBuffer?: ActiveBufferProto;
    /**
     * The number of frames available.
     *
     * @generated from field: optional int32 queued_frames = 28;
     */
    queuedFrames: number;
    /**
     * @generated from field: optional bool refresh_pending = 29;
     */
    refreshPending: boolean;
    /**
     * The layer's composer backend destination frame
     *
     * @generated from field: optional perfetto.protos.RectProto hwc_frame = 30;
     */
    hwcFrame?: RectProto;
    /**
     * The layer's composer backend source crop
     *
     * @generated from field: optional perfetto.protos.FloatRectProto hwc_crop = 31;
     */
    hwcCrop?: FloatRectProto;
    /**
     * The layer's composer backend transform
     *
     * @generated from field: optional int32 hwc_transform = 32;
     */
    hwcTransform: number;
    /**
     * @generated from field: optional int32 window_type = 33 [deprecated = true];
     * @deprecated
     */
    windowType: number;
    /**
     * @generated from field: optional int32 app_id = 34 [deprecated = true];
     * @deprecated
     */
    appId: number;
    /**
     * The layer's composition type
     *
     * @generated from field: optional perfetto.protos.HwcCompositionType hwc_composition_type = 35;
     */
    hwcCompositionType: HwcCompositionType;
    /**
     * If it's a buffer layer, indicate if the content is protected
     *
     * @generated from field: optional bool is_protected = 36;
     */
    isProtected: boolean;
    /**
     * Current frame number being rendered.
     *
     * @generated from field: optional uint64 curr_frame = 37;
     */
    currFrame: bigint;
    /**
     * A list of barriers that the layer is waiting to update state.
     *
     * @generated from field: repeated perfetto.protos.BarrierLayerProto barrier_layer = 38;
     */
    barrierLayer: BarrierLayerProto[];
    /**
     * If active_buffer is not null, record its transform.
     *
     * @generated from field: optional perfetto.protos.TransformProto buffer_transform = 39;
     */
    bufferTransform?: TransformProto;
    /**
     * @generated from field: optional int32 effective_scaling_mode = 40;
     */
    effectiveScalingMode: number;
    /**
     * Layer's corner radius.
     *
     * @generated from field: optional float corner_radius = 41;
     */
    cornerRadius: number;
    /**
     * Metadata map. May be empty.
     *
     * @generated from field: map<int32, string> metadata = 42;
     */
    metadata: {
        [key: number]: string;
    };
    /**
     * @generated from field: optional perfetto.protos.TransformProto effective_transform = 43;
     */
    effectiveTransform?: TransformProto;
    /**
     * @generated from field: optional perfetto.protos.FloatRectProto source_bounds = 44;
     */
    sourceBounds?: FloatRectProto;
    /**
     * @generated from field: optional perfetto.protos.FloatRectProto bounds = 45;
     */
    bounds?: FloatRectProto;
    /**
     * @generated from field: optional perfetto.protos.FloatRectProto screen_bounds = 46;
     */
    screenBounds?: FloatRectProto;
    /**
     * @generated from field: optional perfetto.protos.InputWindowInfoProto input_window_info = 47;
     */
    inputWindowInfo?: InputWindowInfoProto;
    /**
     * Crop used to draw the rounded corner.
     *
     * @generated from field: optional perfetto.protos.FloatRectProto corner_radius_crop = 48;
     */
    cornerRadiusCrop?: FloatRectProto;
    /**
     * length of the shadow to draw around the layer, it may be set on the
     * layer or set by a parent layer.
     *
     * @generated from field: optional float shadow_radius = 49;
     */
    shadowRadius: number;
    /**
     * @generated from field: optional perfetto.protos.ColorTransformProto color_transform = 50;
     */
    colorTransform?: ColorTransformProto;
    /**
     * @generated from field: optional bool is_relative_of = 51;
     */
    isRelativeOf: boolean;
    /**
     * Layer's background blur radius in pixels.
     *
     * @generated from field: optional int32 background_blur_radius = 52;
     */
    backgroundBlurRadius: number;
    /**
     * @generated from field: optional uint32 owner_uid = 53;
     */
    ownerUid: number;
    /**
     * Regions of a layer, where blur should be applied.
     *
     * @generated from field: repeated perfetto.protos.BlurRegion blur_regions = 54;
     */
    blurRegions: BlurRegion[];
    /**
     * @generated from field: optional bool is_trusted_overlay = 55;
     */
    isTrustedOverlay: boolean;
    /**
     * Corner radius explicitly set on layer rather than inherited
     *
     * @generated from field: optional float requested_corner_radius = 56;
     */
    requestedCornerRadius: number;
    /**
     * @generated from field: optional perfetto.protos.RectProto destination_frame = 57;
     */
    destinationFrame?: RectProto;
    /**
     * @generated from field: optional uint32 original_id = 58;
     */
    originalId: number;
    /**
     * @generated from field: optional perfetto.protos.TrustedOverlay trusted_overlay = 59;
     */
    trustedOverlay: TrustedOverlay;
};
/**
 * Describes the message perfetto.protos.LayerProto.
 * Use `create(LayerProtoSchema)` to create a new message.
 */
export declare const LayerProtoSchema: GenMessage<LayerProto>;
/**
 * @generated from message perfetto.protos.PositionProto
 */
export type PositionProto = Message<"perfetto.protos.PositionProto"> & {
    /**
     * @generated from field: optional float x = 1;
     */
    x: number;
    /**
     * @generated from field: optional float y = 2;
     */
    y: number;
};
/**
 * Describes the message perfetto.protos.PositionProto.
 * Use `create(PositionProtoSchema)` to create a new message.
 */
export declare const PositionProtoSchema: GenMessage<PositionProto>;
/**
 * @generated from message perfetto.protos.FloatRectProto
 */
export type FloatRectProto = Message<"perfetto.protos.FloatRectProto"> & {
    /**
     * @generated from field: optional float left = 1;
     */
    left: number;
    /**
     * @generated from field: optional float top = 2;
     */
    top: number;
    /**
     * @generated from field: optional float right = 3;
     */
    right: number;
    /**
     * @generated from field: optional float bottom = 4;
     */
    bottom: number;
};
/**
 * Describes the message perfetto.protos.FloatRectProto.
 * Use `create(FloatRectProtoSchema)` to create a new message.
 */
export declare const FloatRectProtoSchema: GenMessage<FloatRectProto>;
/**
 * @generated from message perfetto.protos.ActiveBufferProto
 */
export type ActiveBufferProto = Message<"perfetto.protos.ActiveBufferProto"> & {
    /**
     * @generated from field: optional uint32 width = 1;
     */
    width: number;
    /**
     * @generated from field: optional uint32 height = 2;
     */
    height: number;
    /**
     * @generated from field: optional uint32 stride = 3;
     */
    stride: number;
    /**
     * @generated from field: optional int32 format = 4;
     */
    format: number;
    /**
     * @generated from field: optional uint64 usage = 5;
     */
    usage: bigint;
};
/**
 * Describes the message perfetto.protos.ActiveBufferProto.
 * Use `create(ActiveBufferProtoSchema)` to create a new message.
 */
export declare const ActiveBufferProtoSchema: GenMessage<ActiveBufferProto>;
/**
 * @generated from message perfetto.protos.BarrierLayerProto
 */
export type BarrierLayerProto = Message<"perfetto.protos.BarrierLayerProto"> & {
    /**
     * layer id the barrier is waiting on.
     *
     * @generated from field: optional int32 id = 1;
     */
    id: number;
    /**
     * frame number the barrier is waiting on.
     *
     * @generated from field: optional uint64 frame_number = 2;
     */
    frameNumber: bigint;
};
/**
 * Describes the message perfetto.protos.BarrierLayerProto.
 * Use `create(BarrierLayerProtoSchema)` to create a new message.
 */
export declare const BarrierLayerProtoSchema: GenMessage<BarrierLayerProto>;
/**
 * Must match definition in the IComposerClient HAL
 *
 * @generated from enum perfetto.protos.HwcCompositionType
 */
export declare enum HwcCompositionType {
    /**
     * Invalid composition type
     *
     * @generated from enum value: HWC_TYPE_UNSPECIFIED = 0;
     */
    HWC_TYPE_UNSPECIFIED = 0,
    /**
     * Layer was composited by the client into the client target buffer
     *
     * @generated from enum value: HWC_TYPE_CLIENT = 1;
     */
    HWC_TYPE_CLIENT = 1,
    /**
     * Layer was composited by the device through hardware overlays
     *
     * @generated from enum value: HWC_TYPE_DEVICE = 2;
     */
    HWC_TYPE_DEVICE = 2,
    /**
     * Layer was composited by the device using a color
     *
     * @generated from enum value: HWC_TYPE_SOLID_COLOR = 3;
     */
    HWC_TYPE_SOLID_COLOR = 3,
    /**
     * Similar to DEVICE, but the layer position may have been asynchronously set
     * through setCursorPosition
     *
     * @generated from enum value: HWC_TYPE_CURSOR = 4;
     */
    HWC_TYPE_CURSOR = 4,
    /**
     * Layer was composited by the device via a sideband stream
     *
     * @generated from enum value: HWC_TYPE_SIDEBAND = 5;
     */
    HWC_TYPE_SIDEBAND = 5,
    /**
     * Layer was composited by hardware optimized for display decoration
     *
     * @generated from enum value: HWC_TYPE_DISPLAY_DECORATION = 6;
     */
    HWC_TYPE_DISPLAY_DECORATION = 6
}
/**
 * Describes the enum perfetto.protos.HwcCompositionType.
 */
export declare const HwcCompositionTypeSchema: GenEnum<HwcCompositionType>;
//# sourceMappingURL=surfaceflinger_layers_pb.d.ts.map