import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/perfetto/common/gpu_counter_descriptor.proto.
 */
export declare const file_protos_perfetto_common_gpu_counter_descriptor: GenFile;
/**
 * Description of GPU counters.
 * This message is sent by a GPU counter producer to specify the counters
 * available in the hardware.
 *
 * @generated from message perfetto.protos.GpuCounterDescriptor
 */
export type GpuCounterDescriptor = Message<"perfetto.protos.GpuCounterDescriptor"> & {
    /**
     * @generated from field: repeated perfetto.protos.GpuCounterDescriptor.GpuCounterSpec specs = 1;
     */
    specs: GpuCounterDescriptor_GpuCounterSpec[];
    /**
     * @generated from field: repeated perfetto.protos.GpuCounterDescriptor.GpuCounterBlock blocks = 2;
     */
    blocks: GpuCounterDescriptor_GpuCounterBlock[];
    /**
     * optional.  Minimum sampling period supported by the producer in
     * nanoseconds.
     *
     * @generated from field: optional uint64 min_sampling_period_ns = 3;
     */
    minSamplingPeriodNs: bigint;
    /**
     * optional.  Maximum sampling period supported by the producer in
     * nanoseconds.
     *
     * @generated from field: optional uint64 max_sampling_period_ns = 4;
     */
    maxSamplingPeriodNs: bigint;
    /**
     * optional.  The producer supports counter sampling by instrumenting the
     * command buffer.
     *
     * @generated from field: optional bool supports_instrumented_sampling = 5;
     */
    supportsInstrumentedSampling: boolean;
};
/**
 * Describes the message perfetto.protos.GpuCounterDescriptor.
 * Use `create(GpuCounterDescriptorSchema)` to create a new message.
 */
export declare const GpuCounterDescriptorSchema: GenMessage<GpuCounterDescriptor>;
/**
 * @generated from message perfetto.protos.GpuCounterDescriptor.GpuCounterSpec
 */
export type GpuCounterDescriptor_GpuCounterSpec = Message<"perfetto.protos.GpuCounterDescriptor.GpuCounterSpec"> & {
    /**
     * @generated from field: optional uint32 counter_id = 1;
     */
    counterId: number;
    /**
     * @generated from field: optional string name = 2;
     */
    name: string;
    /**
     * @generated from field: optional string description = 3;
     */
    description: string;
    /**
     * @generated from oneof perfetto.protos.GpuCounterDescriptor.GpuCounterSpec.peak_value
     */
    peakValue: {
        /**
         * @generated from field: int64 int_peak_value = 5;
         */
        value: bigint;
        case: "intPeakValue";
    } | {
        /**
         * @generated from field: double double_peak_value = 6;
         */
        value: number;
        case: "doublePeakValue";
    } | {
        case: undefined;
        value?: undefined;
    };
    /**
     * @generated from field: repeated perfetto.protos.GpuCounterDescriptor.MeasureUnit numerator_units = 7;
     */
    numeratorUnits: GpuCounterDescriptor_MeasureUnit[];
    /**
     * @generated from field: repeated perfetto.protos.GpuCounterDescriptor.MeasureUnit denominator_units = 8;
     */
    denominatorUnits: GpuCounterDescriptor_MeasureUnit[];
    /**
     * @generated from field: optional bool select_by_default = 9;
     */
    selectByDefault: boolean;
    /**
     * @generated from field: repeated perfetto.protos.GpuCounterDescriptor.GpuCounterGroup groups = 10;
     */
    groups: GpuCounterDescriptor_GpuCounterGroup[];
};
/**
 * Describes the message perfetto.protos.GpuCounterDescriptor.GpuCounterSpec.
 * Use `create(GpuCounterDescriptor_GpuCounterSpecSchema)` to create a new message.
 */
export declare const GpuCounterDescriptor_GpuCounterSpecSchema: GenMessage<GpuCounterDescriptor_GpuCounterSpec>;
/**
 * Allow producer to group counters into block to represent counter islands.
 * A capacity may be specified to indicate the number of counters that can be
 * enable simultaneously in that block.
 *
 * @generated from message perfetto.protos.GpuCounterDescriptor.GpuCounterBlock
 */
export type GpuCounterDescriptor_GpuCounterBlock = Message<"perfetto.protos.GpuCounterDescriptor.GpuCounterBlock"> & {
    /**
     * required. Unique ID for the counter group.
     *
     * @generated from field: optional uint32 block_id = 1;
     */
    blockId: number;
    /**
     * optional. Number of counters supported by the block. No limit if unset.
     *
     * @generated from field: optional uint32 block_capacity = 2;
     */
    blockCapacity: number;
    /**
     * optional. Name of block.
     *
     * @generated from field: optional string name = 3;
     */
    name: string;
    /**
     * optional. Description for the block.
     *
     * @generated from field: optional string description = 4;
     */
    description: string;
    /**
     * list of counters that are part of the block.
     *
     * @generated from field: repeated uint32 counter_ids = 5;
     */
    counterIds: number[];
};
/**
 * Describes the message perfetto.protos.GpuCounterDescriptor.GpuCounterBlock.
 * Use `create(GpuCounterDescriptor_GpuCounterBlockSchema)` to create a new message.
 */
export declare const GpuCounterDescriptor_GpuCounterBlockSchema: GenMessage<GpuCounterDescriptor_GpuCounterBlock>;
/**
 * Logical groups for a counter.  This is used in the UI to present the
 * related counters together.
 *
 * @generated from enum perfetto.protos.GpuCounterDescriptor.GpuCounterGroup
 */
export declare enum GpuCounterDescriptor_GpuCounterGroup {
    /**
     * @generated from enum value: UNCLASSIFIED = 0;
     */
    UNCLASSIFIED = 0,
    /**
     * @generated from enum value: SYSTEM = 1;
     */
    SYSTEM = 1,
    /**
     * @generated from enum value: VERTICES = 2;
     */
    VERTICES = 2,
    /**
     * @generated from enum value: FRAGMENTS = 3;
     */
    FRAGMENTS = 3,
    /**
     * @generated from enum value: PRIMITIVES = 4;
     */
    PRIMITIVES = 4,
    /**
     * Includes counters relating to caching and bandwidth.
     *
     * @generated from enum value: MEMORY = 5;
     */
    MEMORY = 5,
    /**
     * @generated from enum value: COMPUTE = 6;
     */
    COMPUTE = 6
}
/**
 * Describes the enum perfetto.protos.GpuCounterDescriptor.GpuCounterGroup.
 */
export declare const GpuCounterDescriptor_GpuCounterGroupSchema: GenEnum<GpuCounterDescriptor_GpuCounterGroup>;
/**
 * next id: 41
 *
 * @generated from enum perfetto.protos.GpuCounterDescriptor.MeasureUnit
 */
export declare enum GpuCounterDescriptor_MeasureUnit {
    /**
     * @generated from enum value: NONE = 0;
     */
    NONE = 0,
    /**
     * @generated from enum value: BIT = 1;
     */
    BIT = 1,
    /**
     * @generated from enum value: KILOBIT = 2;
     */
    KILOBIT = 2,
    /**
     * @generated from enum value: MEGABIT = 3;
     */
    MEGABIT = 3,
    /**
     * @generated from enum value: GIGABIT = 4;
     */
    GIGABIT = 4,
    /**
     * @generated from enum value: TERABIT = 5;
     */
    TERABIT = 5,
    /**
     * @generated from enum value: PETABIT = 6;
     */
    PETABIT = 6,
    /**
     * @generated from enum value: BYTE = 7;
     */
    BYTE = 7,
    /**
     * @generated from enum value: KILOBYTE = 8;
     */
    KILOBYTE = 8,
    /**
     * @generated from enum value: MEGABYTE = 9;
     */
    MEGABYTE = 9,
    /**
     * @generated from enum value: GIGABYTE = 10;
     */
    GIGABYTE = 10,
    /**
     * @generated from enum value: TERABYTE = 11;
     */
    TERABYTE = 11,
    /**
     * @generated from enum value: PETABYTE = 12;
     */
    PETABYTE = 12,
    /**
     * @generated from enum value: HERTZ = 13;
     */
    HERTZ = 13,
    /**
     * @generated from enum value: KILOHERTZ = 14;
     */
    KILOHERTZ = 14,
    /**
     * @generated from enum value: MEGAHERTZ = 15;
     */
    MEGAHERTZ = 15,
    /**
     * @generated from enum value: GIGAHERTZ = 16;
     */
    GIGAHERTZ = 16,
    /**
     * @generated from enum value: TERAHERTZ = 17;
     */
    TERAHERTZ = 17,
    /**
     * @generated from enum value: PETAHERTZ = 18;
     */
    PETAHERTZ = 18,
    /**
     * @generated from enum value: NANOSECOND = 19;
     */
    NANOSECOND = 19,
    /**
     * @generated from enum value: MICROSECOND = 20;
     */
    MICROSECOND = 20,
    /**
     * @generated from enum value: MILLISECOND = 21;
     */
    MILLISECOND = 21,
    /**
     * @generated from enum value: SECOND = 22;
     */
    SECOND = 22,
    /**
     * @generated from enum value: MINUTE = 23;
     */
    MINUTE = 23,
    /**
     * @generated from enum value: HOUR = 24;
     */
    HOUR = 24,
    /**
     * @generated from enum value: VERTEX = 25;
     */
    VERTEX = 25,
    /**
     * @generated from enum value: PIXEL = 26;
     */
    PIXEL = 26,
    /**
     * @generated from enum value: TRIANGLE = 27;
     */
    TRIANGLE = 27,
    /**
     * @generated from enum value: PRIMITIVE = 38;
     */
    PRIMITIVE = 38,
    /**
     * @generated from enum value: FRAGMENT = 39;
     */
    FRAGMENT = 39,
    /**
     * @generated from enum value: MILLIWATT = 28;
     */
    MILLIWATT = 28,
    /**
     * @generated from enum value: WATT = 29;
     */
    WATT = 29,
    /**
     * @generated from enum value: KILOWATT = 30;
     */
    KILOWATT = 30,
    /**
     * @generated from enum value: JOULE = 31;
     */
    JOULE = 31,
    /**
     * @generated from enum value: VOLT = 32;
     */
    VOLT = 32,
    /**
     * @generated from enum value: AMPERE = 33;
     */
    AMPERE = 33,
    /**
     * @generated from enum value: CELSIUS = 34;
     */
    CELSIUS = 34,
    /**
     * @generated from enum value: FAHRENHEIT = 35;
     */
    FAHRENHEIT = 35,
    /**
     * @generated from enum value: KELVIN = 36;
     */
    KELVIN = 36,
    /**
     * Values should be out of 100.
     *
     * @generated from enum value: PERCENT = 37;
     */
    PERCENT = 37,
    /**
     * @generated from enum value: INSTRUCTION = 40;
     */
    INSTRUCTION = 40
}
/**
 * Describes the enum perfetto.protos.GpuCounterDescriptor.MeasureUnit.
 */
export declare const GpuCounterDescriptor_MeasureUnitSchema: GenEnum<GpuCounterDescriptor_MeasureUnit>;
//# sourceMappingURL=gpu_counter_descriptor_pb.d.ts.map