//
// Copyright (C) 2023 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated from file protos/perfetto/trace_processor/serialization.proto (package perfetto.protos, syntax proto2)
/* eslint-disable */

import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file protos/perfetto/trace_processor/serialization.proto.
 */
export const file_protos_perfetto_trace_processor_serialization: GenFile = /*@__PURE__*/
  fileDesc("CjNwcm90b3MvcGVyZmV0dG8vdHJhY2VfcHJvY2Vzc29yL3NlcmlhbGl6YXRpb24ucHJvdG8SD3BlcmZldHRvLnByb3RvcyJbChhTZXJpYWxpemVkVHJhY2VQcm9jZXNzb3ISPwoGcGFja2V0GAEgAygLMi8ucGVyZmV0dG8ucHJvdG9zLlNlcmlhbGl6ZWRUcmFjZVByb2Nlc3NvclBhY2tldCJfCh5TZXJpYWxpemVkVHJhY2VQcm9jZXNzb3JQYWNrZXQSMwoGY29sdW1uGAEgASgLMiEucGVyZmV0dG8ucHJvdG9zLlNlcmlhbGl6ZWRDb2x1bW5IAEIICgZwYWNrZXQikw0KEFNlcmlhbGl6ZWRDb2x1bW4SEgoKdGFibGVfbmFtZRgBIAEoCRITCgtjb2x1bW5fbmFtZRgCIAEoCRI6CgdzdG9yYWdlGAMgASgLMikucGVyZmV0dG8ucHJvdG9zLlNlcmlhbGl6ZWRDb2x1bW4uU3RvcmFnZRo4CglCaXRWZWN0b3ISDQoFd29yZHMYASABKAwSDgoGY291bnRzGAIgASgMEgwKBHNpemUYAyABKA0a3wsKB1N0b3JhZ2USTwoNZHVtbXlfc3RvcmFnZRgBIAEoCzI2LnBlcmZldHRvLnByb3Rvcy5TZXJpYWxpemVkQ29sdW1uLlN0b3JhZ2UuRHVtbXlTdG9yYWdlSAASSQoKaWRfc3RvcmFnZRgCIAEoCzIzLnBlcmZldHRvLnByb3Rvcy5TZXJpYWxpemVkQ29sdW1uLlN0b3JhZ2UuSWRTdG9yYWdlSAASUwoPbnVtZXJpY19zdG9yYWdlGAMgASgLMjgucGVyZmV0dG8ucHJvdG9zLlNlcmlhbGl6ZWRDb2x1bW4uU3RvcmFnZS5OdW1lcmljU3RvcmFnZUgAElAKDnNldF9pZF9zdG9yYWdlGAQgASgLMjYucGVyZmV0dG8ucHJvdG9zLlNlcmlhbGl6ZWRDb2x1bW4uU3RvcmFnZS5TZXRJZFN0b3JhZ2VIABJRCg5zdHJpbmdfc3RvcmFnZRgFIAEoCzI3LnBlcmZldHRvLnByb3Rvcy5TZXJpYWxpemVkQ29sdW1uLlN0b3JhZ2UuU3RyaW5nU3RvcmFnZUgAEk0KDG51bGxfb3ZlcmxheRgGIAEoCzI1LnBlcmZldHRvLnByb3Rvcy5TZXJpYWxpemVkQ29sdW1uLlN0b3JhZ2UuTnVsbE92ZXJsYXlIABJbChNhcnJhbmdlbWVudF9vdmVybGF5GAcgASgLMjwucGVyZmV0dG8ucHJvdG9zLlNlcmlhbGl6ZWRDb2x1bW4uU3RvcmFnZS5BcnJhbmdlbWVudE92ZXJsYXlIABJVChBzZWxlY3Rvcl9vdmVybGF5GAggASgLMjkucGVyZmV0dG8ucHJvdG9zLlNlcmlhbGl6ZWRDb2x1bW4uU3RvcmFnZS5TZWxlY3Rvck92ZXJsYXlIABJYChJkZW5zZV9udWxsX292ZXJsYXkYCSABKAsyOi5wZXJmZXR0by5wcm90b3MuU2VyaWFsaXplZENvbHVtbi5TdG9yYWdlLkRlbnNlTnVsbE92ZXJsYXlIABoOCgxEdW1teVN0b3JhZ2UaGQoJSWRTdG9yYWdlEgwKBHNpemUYASABKAQaSAoOTnVtZXJpY1N0b3JhZ2USDgoGdmFsdWVzGAEgASgMEhEKCWlzX3NvcnRlZBgCIAEoCBITCgtjb2x1bW5fdHlwZRgDIAEoDRoeCgxTZXRJZFN0b3JhZ2USDgoGdmFsdWVzGAEgASgMGjIKDVN0cmluZ1N0b3JhZ2USDgoGdmFsdWVzGAEgASgMEhEKCWlzX3NvcnRlZBgCIAEoCBqKAQoLTnVsbE92ZXJsYXkSPwoKYml0X3ZlY3RvchgBIAEoCzIrLnBlcmZldHRvLnByb3Rvcy5TZXJpYWxpemVkQ29sdW1uLkJpdFZlY3RvchI6CgdzdG9yYWdlGAIgASgLMikucGVyZmV0dG8ucHJvdG9zLlNlcmlhbGl6ZWRDb2x1bW4uU3RvcmFnZRpgChJBcnJhbmdlbWVudE92ZXJsYXkSDgoGdmFsdWVzGAEgASgMEjoKB3N0b3JhZ2UYAiABKAsyKS5wZXJmZXR0by5wcm90b3MuU2VyaWFsaXplZENvbHVtbi5TdG9yYWdlGo4BCg9TZWxlY3Rvck92ZXJsYXkSPwoKYml0X3ZlY3RvchgBIAEoCzIrLnBlcmZldHRvLnByb3Rvcy5TZXJpYWxpemVkQ29sdW1uLkJpdFZlY3RvchI6CgdzdG9yYWdlGAIgASgLMikucGVyZmV0dG8ucHJvdG9zLlNlcmlhbGl6ZWRDb2x1bW4uU3RvcmFnZRqPAQoQRGVuc2VOdWxsT3ZlcmxheRI/CgpiaXRfdmVjdG9yGAEgASgLMisucGVyZmV0dG8ucHJvdG9zLlNlcmlhbGl6ZWRDb2x1bW4uQml0VmVjdG9yEjoKB3N0b3JhZ2UYAiABKAsyKS5wZXJmZXR0by5wcm90b3MuU2VyaWFsaXplZENvbHVtbi5TdG9yYWdlQgYKBGRhdGE");

/**
 * Outside level schema of all serialized objects. Each self contained
 * serialized object is a separate packet and they don't depend on each other
 * for serialization.
 *
 * @generated from message perfetto.protos.SerializedTraceProcessor
 */
export type SerializedTraceProcessor = Message<"perfetto.protos.SerializedTraceProcessor"> & {
  /**
   * @generated from field: repeated perfetto.protos.SerializedTraceProcessorPacket packet = 1;
   */
  packet: SerializedTraceProcessorPacket[];
};

/**
 * Describes the message perfetto.protos.SerializedTraceProcessor.
 * Use `create(SerializedTraceProcessorSchema)` to create a new message.
 */
export const SerializedTraceProcessorSchema: GenMessage<SerializedTraceProcessor> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_processor_serialization, 0);

/**
 * One of independent serialized objects.
 *
 * @generated from message perfetto.protos.SerializedTraceProcessorPacket
 */
export type SerializedTraceProcessorPacket = Message<"perfetto.protos.SerializedTraceProcessorPacket"> & {
  /**
   * @generated from oneof perfetto.protos.SerializedTraceProcessorPacket.packet
   */
  packet: {
    /**
     * @generated from field: perfetto.protos.SerializedColumn column = 1;
     */
    value: SerializedColumn;
    case: "column";
  } | { case: undefined; value?: undefined };
};

/**
 * Describes the message perfetto.protos.SerializedTraceProcessorPacket.
 * Use `create(SerializedTraceProcessorPacketSchema)` to create a new message.
 */
export const SerializedTraceProcessorPacketSchema: GenMessage<SerializedTraceProcessorPacket> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_processor_serialization, 1);

/**
 * Schema for serializing the column of Trace Processor table.
 *
 * @generated from message perfetto.protos.SerializedColumn
 */
export type SerializedColumn = Message<"perfetto.protos.SerializedColumn"> & {
  /**
   * Name of the table this column is part of.
   *
   * @generated from field: optional string table_name = 1;
   */
  tableName: string;

  /**
   * @generated from field: optional string column_name = 2;
   */
  columnName: string;

  /**
   * @generated from field: optional perfetto.protos.SerializedColumn.Storage storage = 3;
   */
  storage?: SerializedColumn_Storage;
};

/**
 * Describes the message perfetto.protos.SerializedColumn.
 * Use `create(SerializedColumnSchema)` to create a new message.
 */
export const SerializedColumnSchema: GenMessage<SerializedColumn> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_processor_serialization, 2);

/**
 * Schema used to store a serialized |BitVector|.
 *
 * @generated from message perfetto.protos.SerializedColumn.BitVector
 */
export type SerializedColumn_BitVector = Message<"perfetto.protos.SerializedColumn.BitVector"> & {
  /**
   * @generated from field: optional bytes words = 1;
   */
  words: Uint8Array;

  /**
   * @generated from field: optional bytes counts = 2;
   */
  counts: Uint8Array;

  /**
   * @generated from field: optional uint32 size = 3;
   */
  size: number;
};

/**
 * Describes the message perfetto.protos.SerializedColumn.BitVector.
 * Use `create(SerializedColumn_BitVectorSchema)` to create a new message.
 */
export const SerializedColumn_BitVectorSchema: GenMessage<SerializedColumn_BitVector> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_processor_serialization, 2, 0);

/**
 * A schema for serialization of any of the descendants of |storage::Storage|.
 *
 * @generated from message perfetto.protos.SerializedColumn.Storage
 */
export type SerializedColumn_Storage = Message<"perfetto.protos.SerializedColumn.Storage"> & {
  /**
   * @generated from oneof perfetto.protos.SerializedColumn.Storage.data
   */
  data: {
    /**
     * @generated from field: perfetto.protos.SerializedColumn.Storage.DummyStorage dummy_storage = 1;
     */
    value: SerializedColumn_Storage_DummyStorage;
    case: "dummyStorage";
  } | {
    /**
     * @generated from field: perfetto.protos.SerializedColumn.Storage.IdStorage id_storage = 2;
     */
    value: SerializedColumn_Storage_IdStorage;
    case: "idStorage";
  } | {
    /**
     * @generated from field: perfetto.protos.SerializedColumn.Storage.NumericStorage numeric_storage = 3;
     */
    value: SerializedColumn_Storage_NumericStorage;
    case: "numericStorage";
  } | {
    /**
     * @generated from field: perfetto.protos.SerializedColumn.Storage.SetIdStorage set_id_storage = 4;
     */
    value: SerializedColumn_Storage_SetIdStorage;
    case: "setIdStorage";
  } | {
    /**
     * @generated from field: perfetto.protos.SerializedColumn.Storage.StringStorage string_storage = 5;
     */
    value: SerializedColumn_Storage_StringStorage;
    case: "stringStorage";
  } | {
    /**
     * @generated from field: perfetto.protos.SerializedColumn.Storage.NullOverlay null_overlay = 6;
     */
    value: SerializedColumn_Storage_NullOverlay;
    case: "nullOverlay";
  } | {
    /**
     * @generated from field: perfetto.protos.SerializedColumn.Storage.ArrangementOverlay arrangement_overlay = 7;
     */
    value: SerializedColumn_Storage_ArrangementOverlay;
    case: "arrangementOverlay";
  } | {
    /**
     * @generated from field: perfetto.protos.SerializedColumn.Storage.SelectorOverlay selector_overlay = 8;
     */
    value: SerializedColumn_Storage_SelectorOverlay;
    case: "selectorOverlay";
  } | {
    /**
     * @generated from field: perfetto.protos.SerializedColumn.Storage.DenseNullOverlay dense_null_overlay = 9;
     */
    value: SerializedColumn_Storage_DenseNullOverlay;
    case: "denseNullOverlay";
  } | { case: undefined; value?: undefined };
};

/**
 * Describes the message perfetto.protos.SerializedColumn.Storage.
 * Use `create(SerializedColumn_StorageSchema)` to create a new message.
 */
export const SerializedColumn_StorageSchema: GenMessage<SerializedColumn_Storage> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_processor_serialization, 2, 1);

/**
 * Dummy storage should not contain any data. It's used to signify that
 * there is a column present, and it's not usable.
 *
 * @generated from message perfetto.protos.SerializedColumn.Storage.DummyStorage
 */
export type SerializedColumn_Storage_DummyStorage = Message<"perfetto.protos.SerializedColumn.Storage.DummyStorage"> & {
};

/**
 * Describes the message perfetto.protos.SerializedColumn.Storage.DummyStorage.
 * Use `create(SerializedColumn_Storage_DummyStorageSchema)` to create a new message.
 */
export const SerializedColumn_Storage_DummyStorageSchema: GenMessage<SerializedColumn_Storage_DummyStorage> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_processor_serialization, 2, 1, 0);

/**
 * A schema for serialization of |storage::IdStorage|.
 *
 * @generated from message perfetto.protos.SerializedColumn.Storage.IdStorage
 */
export type SerializedColumn_Storage_IdStorage = Message<"perfetto.protos.SerializedColumn.Storage.IdStorage"> & {
  /**
   * @generated from field: optional uint64 size = 1;
   */
  size: bigint;
};

/**
 * Describes the message perfetto.protos.SerializedColumn.Storage.IdStorage.
 * Use `create(SerializedColumn_Storage_IdStorageSchema)` to create a new message.
 */
export const SerializedColumn_Storage_IdStorageSchema: GenMessage<SerializedColumn_Storage_IdStorage> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_processor_serialization, 2, 1, 1);

/**
 * A schema for serialization of |storage::Numeric|.
 *
 * @generated from message perfetto.protos.SerializedColumn.Storage.NumericStorage
 */
export type SerializedColumn_Storage_NumericStorage = Message<"perfetto.protos.SerializedColumn.Storage.NumericStorage"> & {
  /**
   * @generated from field: optional bytes values = 1;
   */
  values: Uint8Array;

  /**
   * @generated from field: optional bool is_sorted = 2;
   */
  isSorted: boolean;

  /**
   * @generated from field: optional uint32 column_type = 3;
   */
  columnType: number;
};

/**
 * Describes the message perfetto.protos.SerializedColumn.Storage.NumericStorage.
 * Use `create(SerializedColumn_Storage_NumericStorageSchema)` to create a new message.
 */
export const SerializedColumn_Storage_NumericStorageSchema: GenMessage<SerializedColumn_Storage_NumericStorage> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_processor_serialization, 2, 1, 2);

/**
 * A schema for serialization of |storage::SetIdStorage|.
 *
 * @generated from message perfetto.protos.SerializedColumn.Storage.SetIdStorage
 */
export type SerializedColumn_Storage_SetIdStorage = Message<"perfetto.protos.SerializedColumn.Storage.SetIdStorage"> & {
  /**
   * @generated from field: optional bytes values = 1;
   */
  values: Uint8Array;
};

/**
 * Describes the message perfetto.protos.SerializedColumn.Storage.SetIdStorage.
 * Use `create(SerializedColumn_Storage_SetIdStorageSchema)` to create a new message.
 */
export const SerializedColumn_Storage_SetIdStorageSchema: GenMessage<SerializedColumn_Storage_SetIdStorage> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_processor_serialization, 2, 1, 3);

/**
 * A schema for serialization of |storage::StringStorage|.
 *
 * @generated from message perfetto.protos.SerializedColumn.Storage.StringStorage
 */
export type SerializedColumn_Storage_StringStorage = Message<"perfetto.protos.SerializedColumn.Storage.StringStorage"> & {
  /**
   * @generated from field: optional bytes values = 1;
   */
  values: Uint8Array;

  /**
   * @generated from field: optional bool is_sorted = 2;
   */
  isSorted: boolean;
};

/**
 * Describes the message perfetto.protos.SerializedColumn.Storage.StringStorage.
 * Use `create(SerializedColumn_Storage_StringStorageSchema)` to create a new message.
 */
export const SerializedColumn_Storage_StringStorageSchema: GenMessage<SerializedColumn_Storage_StringStorage> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_processor_serialization, 2, 1, 4);

/**
 * A schema for serialization of |storage::NullOverlay|.
 *
 * @generated from message perfetto.protos.SerializedColumn.Storage.NullOverlay
 */
export type SerializedColumn_Storage_NullOverlay = Message<"perfetto.protos.SerializedColumn.Storage.NullOverlay"> & {
  /**
   * @generated from field: optional perfetto.protos.SerializedColumn.BitVector bit_vector = 1;
   */
  bitVector?: SerializedColumn_BitVector;

  /**
   * @generated from field: optional perfetto.protos.SerializedColumn.Storage storage = 2;
   */
  storage?: SerializedColumn_Storage;
};

/**
 * Describes the message perfetto.protos.SerializedColumn.Storage.NullOverlay.
 * Use `create(SerializedColumn_Storage_NullOverlaySchema)` to create a new message.
 */
export const SerializedColumn_Storage_NullOverlaySchema: GenMessage<SerializedColumn_Storage_NullOverlay> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_processor_serialization, 2, 1, 5);

/**
 * A schema for serialization of |storage::ArrangementOverlay|.
 *
 * @generated from message perfetto.protos.SerializedColumn.Storage.ArrangementOverlay
 */
export type SerializedColumn_Storage_ArrangementOverlay = Message<"perfetto.protos.SerializedColumn.Storage.ArrangementOverlay"> & {
  /**
   * @generated from field: optional bytes values = 1;
   */
  values: Uint8Array;

  /**
   * @generated from field: optional perfetto.protos.SerializedColumn.Storage storage = 2;
   */
  storage?: SerializedColumn_Storage;
};

/**
 * Describes the message perfetto.protos.SerializedColumn.Storage.ArrangementOverlay.
 * Use `create(SerializedColumn_Storage_ArrangementOverlaySchema)` to create a new message.
 */
export const SerializedColumn_Storage_ArrangementOverlaySchema: GenMessage<SerializedColumn_Storage_ArrangementOverlay> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_processor_serialization, 2, 1, 6);

/**
 * A schema for serialization of |storage::SelectorOverlay|.
 *
 * @generated from message perfetto.protos.SerializedColumn.Storage.SelectorOverlay
 */
export type SerializedColumn_Storage_SelectorOverlay = Message<"perfetto.protos.SerializedColumn.Storage.SelectorOverlay"> & {
  /**
   * @generated from field: optional perfetto.protos.SerializedColumn.BitVector bit_vector = 1;
   */
  bitVector?: SerializedColumn_BitVector;

  /**
   * @generated from field: optional perfetto.protos.SerializedColumn.Storage storage = 2;
   */
  storage?: SerializedColumn_Storage;
};

/**
 * Describes the message perfetto.protos.SerializedColumn.Storage.SelectorOverlay.
 * Use `create(SerializedColumn_Storage_SelectorOverlaySchema)` to create a new message.
 */
export const SerializedColumn_Storage_SelectorOverlaySchema: GenMessage<SerializedColumn_Storage_SelectorOverlay> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_processor_serialization, 2, 1, 7);

/**
 * A schema for serialization of |storage::DenseNullOverlay|.
 *
 * @generated from message perfetto.protos.SerializedColumn.Storage.DenseNullOverlay
 */
export type SerializedColumn_Storage_DenseNullOverlay = Message<"perfetto.protos.SerializedColumn.Storage.DenseNullOverlay"> & {
  /**
   * @generated from field: optional perfetto.protos.SerializedColumn.BitVector bit_vector = 1;
   */
  bitVector?: SerializedColumn_BitVector;

  /**
   * @generated from field: optional perfetto.protos.SerializedColumn.Storage storage = 2;
   */
  storage?: SerializedColumn_Storage;
};

/**
 * Describes the message perfetto.protos.SerializedColumn.Storage.DenseNullOverlay.
 * Use `create(SerializedColumn_Storage_DenseNullOverlaySchema)` to create a new message.
 */
export const SerializedColumn_Storage_DenseNullOverlaySchema: GenMessage<SerializedColumn_Storage_DenseNullOverlay> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_processor_serialization, 2, 1, 8);

