import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/perfetto/common/descriptor.proto.
 */
export declare const file_protos_perfetto_common_descriptor: GenFile;
/**
 * The protocol compiler can output a FileDescriptorSet containing the .proto
 * files it parses.
 *
 * @generated from message perfetto.protos.FileDescriptorSet
 */
export type FileDescriptorSet = Message<"perfetto.protos.FileDescriptorSet"> & {
    /**
     * @generated from field: repeated perfetto.protos.FileDescriptorProto file = 1;
     */
    file: FileDescriptorProto[];
};
/**
 * Describes the message perfetto.protos.FileDescriptorSet.
 * Use `create(FileDescriptorSetSchema)` to create a new message.
 */
export declare const FileDescriptorSetSchema: GenMessage<FileDescriptorSet>;
/**
 * Describes a complete .proto file.
 *
 * @generated from message perfetto.protos.FileDescriptorProto
 */
export type FileDescriptorProto = Message<"perfetto.protos.FileDescriptorProto"> & {
    /**
     * file name, relative to root of source tree
     *
     * @generated from field: optional string name = 1;
     */
    name: string;
    /**
     * e.g. "foo", "foo.bar", etc.
     *
     * @generated from field: optional string package = 2;
     */
    package: string;
    /**
     * Names of files imported by this file.
     *
     * @generated from field: repeated string dependency = 3;
     */
    dependency: string[];
    /**
     * Indexes of the public imported files in the dependency list above.
     *
     * @generated from field: repeated int32 public_dependency = 10;
     */
    publicDependency: number[];
    /**
     * Indexes of the weak imported files in the dependency list.
     * For Google-internal migration only. Do not use.
     *
     * @generated from field: repeated int32 weak_dependency = 11;
     */
    weakDependency: number[];
    /**
     * All top-level definitions in this file.
     *
     * @generated from field: repeated perfetto.protos.DescriptorProto message_type = 4;
     */
    messageType: DescriptorProto[];
    /**
     * @generated from field: repeated perfetto.protos.EnumDescriptorProto enum_type = 5;
     */
    enumType: EnumDescriptorProto[];
    /**
     * @generated from field: repeated perfetto.protos.FieldDescriptorProto extension = 7;
     */
    extension: FieldDescriptorProto[];
};
/**
 * Describes the message perfetto.protos.FileDescriptorProto.
 * Use `create(FileDescriptorProtoSchema)` to create a new message.
 */
export declare const FileDescriptorProtoSchema: GenMessage<FileDescriptorProto>;
/**
 * Describes a message type.
 *
 * @generated from message perfetto.protos.DescriptorProto
 */
export type DescriptorProto = Message<"perfetto.protos.DescriptorProto"> & {
    /**
     * @generated from field: optional string name = 1;
     */
    name: string;
    /**
     * @generated from field: repeated perfetto.protos.FieldDescriptorProto field = 2;
     */
    field: FieldDescriptorProto[];
    /**
     * @generated from field: repeated perfetto.protos.FieldDescriptorProto extension = 6;
     */
    extension: FieldDescriptorProto[];
    /**
     * @generated from field: repeated perfetto.protos.DescriptorProto nested_type = 3;
     */
    nestedType: DescriptorProto[];
    /**
     * @generated from field: repeated perfetto.protos.EnumDescriptorProto enum_type = 4;
     */
    enumType: EnumDescriptorProto[];
    /**
     * @generated from field: repeated perfetto.protos.OneofDescriptorProto oneof_decl = 8;
     */
    oneofDecl: OneofDescriptorProto[];
    /**
     * @generated from field: repeated perfetto.protos.DescriptorProto.ReservedRange reserved_range = 9;
     */
    reservedRange: DescriptorProto_ReservedRange[];
    /**
     * Reserved field names, which may not be used by fields in the same message.
     * A given name may only be reserved once.
     *
     * @generated from field: repeated string reserved_name = 10;
     */
    reservedName: string[];
};
/**
 * Describes the message perfetto.protos.DescriptorProto.
 * Use `create(DescriptorProtoSchema)` to create a new message.
 */
export declare const DescriptorProtoSchema: GenMessage<DescriptorProto>;
/**
 * Range of reserved tag numbers. Reserved tag numbers may not be used by
 * fields or extension ranges in the same message. Reserved ranges may
 * not overlap.
 *
 * @generated from message perfetto.protos.DescriptorProto.ReservedRange
 */
export type DescriptorProto_ReservedRange = Message<"perfetto.protos.DescriptorProto.ReservedRange"> & {
    /**
     * Inclusive.
     *
     * @generated from field: optional int32 start = 1;
     */
    start: number;
    /**
     * Exclusive.
     *
     * @generated from field: optional int32 end = 2;
     */
    end: number;
};
/**
 * Describes the message perfetto.protos.DescriptorProto.ReservedRange.
 * Use `create(DescriptorProto_ReservedRangeSchema)` to create a new message.
 */
export declare const DescriptorProto_ReservedRangeSchema: GenMessage<DescriptorProto_ReservedRange>;
/**
 * A message representing a option the parser does not recognize. This only
 * appears in options protos created by the compiler::Parser class.
 * DescriptorPool resolves these when building Descriptor objects. Therefore,
 * options protos in descriptor objects (e.g. returned by Descriptor::options(),
 * or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
 * in them.
 *
 * @generated from message perfetto.protos.UninterpretedOption
 */
export type UninterpretedOption = Message<"perfetto.protos.UninterpretedOption"> & {
    /**
     * @generated from field: repeated perfetto.protos.UninterpretedOption.NamePart name = 2;
     */
    name: UninterpretedOption_NamePart[];
    /**
     * The value of the uninterpreted option, in whatever type the tokenizer
     * identified it as during parsing. Exactly one of these should be set.
     *
     * @generated from field: optional string identifier_value = 3;
     */
    identifierValue: string;
    /**
     * @generated from field: optional uint64 positive_int_value = 4;
     */
    positiveIntValue: bigint;
    /**
     * @generated from field: optional int64 negative_int_value = 5;
     */
    negativeIntValue: bigint;
    /**
     * @generated from field: optional double double_value = 6;
     */
    doubleValue: number;
    /**
     * @generated from field: optional bytes string_value = 7;
     */
    stringValue: Uint8Array;
    /**
     * @generated from field: optional string aggregate_value = 8;
     */
    aggregateValue: string;
};
/**
 * Describes the message perfetto.protos.UninterpretedOption.
 * Use `create(UninterpretedOptionSchema)` to create a new message.
 */
export declare const UninterpretedOptionSchema: GenMessage<UninterpretedOption>;
/**
 * The name of the uninterpreted option.  Each string represents a segment in
 * a dot-separated name.  is_extension is true iff a segment represents an
 * extension (denoted with parentheses in options specs in .proto files).
 * E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents
 * "foo.(bar.baz).moo".
 *
 * @generated from message perfetto.protos.UninterpretedOption.NamePart
 */
export type UninterpretedOption_NamePart = Message<"perfetto.protos.UninterpretedOption.NamePart"> & {
    /**
     * @generated from field: optional string name_part = 1;
     */
    namePart: string;
    /**
     * @generated from field: optional bool is_extension = 2;
     */
    isExtension: boolean;
};
/**
 * Describes the message perfetto.protos.UninterpretedOption.NamePart.
 * Use `create(UninterpretedOption_NamePartSchema)` to create a new message.
 */
export declare const UninterpretedOption_NamePartSchema: GenMessage<UninterpretedOption_NamePart>;
/**
 * @generated from message perfetto.protos.FieldOptions
 */
export type FieldOptions = Message<"perfetto.protos.FieldOptions"> & {
    /**
     * The packed option can be enabled for repeated primitive fields to enable
     * a more efficient representation on the wire. Rather than repeatedly
     * writing the tag and type for each element, the entire array is encoded as
     * a single length-delimited blob. In proto3, only explicit setting it to
     * false will avoid using packed encoding.
     *
     * @generated from field: optional bool packed = 2;
     */
    packed: boolean;
    /**
     * The parser stores options it doesn't recognize here. See above.
     *
     * @generated from field: repeated perfetto.protos.UninterpretedOption uninterpreted_option = 999;
     */
    uninterpretedOption: UninterpretedOption[];
};
/**
 * Describes the message perfetto.protos.FieldOptions.
 * Use `create(FieldOptionsSchema)` to create a new message.
 */
export declare const FieldOptionsSchema: GenMessage<FieldOptions>;
/**
 * Describes a field within a message.
 *
 * @generated from message perfetto.protos.FieldDescriptorProto
 */
export type FieldDescriptorProto = Message<"perfetto.protos.FieldDescriptorProto"> & {
    /**
     * @generated from field: optional string name = 1;
     */
    name: string;
    /**
     * @generated from field: optional int32 number = 3;
     */
    number: number;
    /**
     * @generated from field: optional perfetto.protos.FieldDescriptorProto.Label label = 4;
     */
    label: FieldDescriptorProto_Label;
    /**
     * If type_name is set, this need not be set.  If both this and type_name
     * are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
     *
     * @generated from field: optional perfetto.protos.FieldDescriptorProto.Type type = 5;
     */
    type: FieldDescriptorProto_Type;
    /**
     * For message and enum types, this is the name of the type.  If the name
     * starts with a '.', it is fully-qualified.  Otherwise, C++-like scoping
     * rules are used to find the type (i.e. first the nested types within this
     * message are searched, then within the parent, on up to the root
     * namespace).
     *
     * @generated from field: optional string type_name = 6;
     */
    typeName: string;
    /**
     * For extensions, this is the name of the type being extended.  It is
     * resolved in the same manner as type_name.
     *
     * @generated from field: optional string extendee = 2;
     */
    extendee: string;
    /**
     * For numeric types, contains the original text representation of the value.
     * For booleans, "true" or "false".
     * For strings, contains the default text contents (not escaped in any way).
     * For bytes, contains the C escaped value.  All bytes >= 128 are escaped.
     * TODO(kenton):  Base-64 encode?
     *
     * @generated from field: optional string default_value = 7;
     */
    defaultValue: string;
    /**
     * @generated from field: optional perfetto.protos.FieldOptions options = 8;
     */
    options?: FieldOptions;
    /**
     * If set, gives the index of a oneof in the containing type's oneof_decl
     * list.  This field is a member of that oneof.
     *
     * @generated from field: optional int32 oneof_index = 9;
     */
    oneofIndex: number;
};
/**
 * Describes the message perfetto.protos.FieldDescriptorProto.
 * Use `create(FieldDescriptorProtoSchema)` to create a new message.
 */
export declare const FieldDescriptorProtoSchema: GenMessage<FieldDescriptorProto>;
/**
 * @generated from enum perfetto.protos.FieldDescriptorProto.Type
 */
export declare enum FieldDescriptorProto_Type {
    /**
     * 0 is reserved for errors.
     * Order is weird for historical reasons.
     *
     * @generated from enum value: TYPE_DOUBLE = 1;
     */
    DOUBLE = 1,
    /**
     * @generated from enum value: TYPE_FLOAT = 2;
     */
    FLOAT = 2,
    /**
     * Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT64 if
     * negative values are likely.
     *
     * @generated from enum value: TYPE_INT64 = 3;
     */
    INT64 = 3,
    /**
     * @generated from enum value: TYPE_UINT64 = 4;
     */
    UINT64 = 4,
    /**
     * Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT32 if
     * negative values are likely.
     *
     * @generated from enum value: TYPE_INT32 = 5;
     */
    INT32 = 5,
    /**
     * @generated from enum value: TYPE_FIXED64 = 6;
     */
    FIXED64 = 6,
    /**
     * @generated from enum value: TYPE_FIXED32 = 7;
     */
    FIXED32 = 7,
    /**
     * @generated from enum value: TYPE_BOOL = 8;
     */
    BOOL = 8,
    /**
     * @generated from enum value: TYPE_STRING = 9;
     */
    STRING = 9,
    /**
     * Tag-delimited aggregate.
     * Group type is deprecated and not supported in proto3. However, Proto3
     * implementations should still be able to parse the group wire format and
     * treat group fields as unknown fields.
     *
     * @generated from enum value: TYPE_GROUP = 10;
     */
    GROUP = 10,
    /**
     * Length-delimited aggregate.
     *
     * @generated from enum value: TYPE_MESSAGE = 11;
     */
    MESSAGE = 11,
    /**
     * New in version 2.
     *
     * @generated from enum value: TYPE_BYTES = 12;
     */
    BYTES = 12,
    /**
     * @generated from enum value: TYPE_UINT32 = 13;
     */
    UINT32 = 13,
    /**
     * @generated from enum value: TYPE_ENUM = 14;
     */
    ENUM = 14,
    /**
     * @generated from enum value: TYPE_SFIXED32 = 15;
     */
    SFIXED32 = 15,
    /**
     * @generated from enum value: TYPE_SFIXED64 = 16;
     */
    SFIXED64 = 16,
    /**
     * Uses ZigZag encoding.
     *
     * @generated from enum value: TYPE_SINT32 = 17;
     */
    SINT32 = 17,
    /**
     * Uses ZigZag encoding.
     *
     * @generated from enum value: TYPE_SINT64 = 18;
     */
    SINT64 = 18
}
/**
 * Describes the enum perfetto.protos.FieldDescriptorProto.Type.
 */
export declare const FieldDescriptorProto_TypeSchema: GenEnum<FieldDescriptorProto_Type>;
/**
 * @generated from enum perfetto.protos.FieldDescriptorProto.Label
 */
export declare enum FieldDescriptorProto_Label {
    /**
     * 0 is reserved for errors
     *
     * @generated from enum value: LABEL_OPTIONAL = 1;
     */
    OPTIONAL = 1,
    /**
     * @generated from enum value: LABEL_REQUIRED = 2;
     */
    REQUIRED = 2,
    /**
     * @generated from enum value: LABEL_REPEATED = 3;
     */
    REPEATED = 3
}
/**
 * Describes the enum perfetto.protos.FieldDescriptorProto.Label.
 */
export declare const FieldDescriptorProto_LabelSchema: GenEnum<FieldDescriptorProto_Label>;
/**
 * Describes a oneof.
 *
 * @generated from message perfetto.protos.OneofDescriptorProto
 */
export type OneofDescriptorProto = Message<"perfetto.protos.OneofDescriptorProto"> & {
    /**
     * @generated from field: optional string name = 1;
     */
    name: string;
    /**
     * @generated from field: optional perfetto.protos.OneofOptions options = 2;
     */
    options?: OneofOptions;
};
/**
 * Describes the message perfetto.protos.OneofDescriptorProto.
 * Use `create(OneofDescriptorProtoSchema)` to create a new message.
 */
export declare const OneofDescriptorProtoSchema: GenMessage<OneofDescriptorProto>;
/**
 * Describes an enum type.
 *
 * @generated from message perfetto.protos.EnumDescriptorProto
 */
export type EnumDescriptorProto = Message<"perfetto.protos.EnumDescriptorProto"> & {
    /**
     * @generated from field: optional string name = 1;
     */
    name: string;
    /**
     * @generated from field: repeated perfetto.protos.EnumValueDescriptorProto value = 2;
     */
    value: EnumValueDescriptorProto[];
    /**
     * Reserved enum value names, which may not be reused. A given name may only
     * be reserved once.
     *
     * @generated from field: repeated string reserved_name = 5;
     */
    reservedName: string[];
};
/**
 * Describes the message perfetto.protos.EnumDescriptorProto.
 * Use `create(EnumDescriptorProtoSchema)` to create a new message.
 */
export declare const EnumDescriptorProtoSchema: GenMessage<EnumDescriptorProto>;
/**
 * Describes a value within an enum.
 *
 * @generated from message perfetto.protos.EnumValueDescriptorProto
 */
export type EnumValueDescriptorProto = Message<"perfetto.protos.EnumValueDescriptorProto"> & {
    /**
     * @generated from field: optional string name = 1;
     */
    name: string;
    /**
     * @generated from field: optional int32 number = 2;
     */
    number: number;
};
/**
 * Describes the message perfetto.protos.EnumValueDescriptorProto.
 * Use `create(EnumValueDescriptorProtoSchema)` to create a new message.
 */
export declare const EnumValueDescriptorProtoSchema: GenMessage<EnumValueDescriptorProto>;
/**
 * @generated from message perfetto.protos.OneofOptions
 */
export type OneofOptions = Message<"perfetto.protos.OneofOptions"> & {};
/**
 * Describes the message perfetto.protos.OneofOptions.
 * Use `create(OneofOptionsSchema)` to create a new message.
 */
export declare const OneofOptionsSchema: GenMessage<OneofOptions>;
//# sourceMappingURL=descriptor_pb.d.ts.map