import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { MeminfoCounters, VmstatCounters } from "../../common/sys_stats_counters_pb";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/perfetto/trace/sys_stats/sys_stats.proto.
 */
export declare const file_protos_perfetto_trace_sys_stats_sys_stats: GenFile;
/**
 * Various Linux system stat counters from /proc.
 * The fields in this message can be reported at different rates and with
 * different granularity. See sys_stats_config.proto.
 *
 * @generated from message perfetto.protos.SysStats
 */
export type SysStats = Message<"perfetto.protos.SysStats"> & {
    /**
     * @generated from field: repeated perfetto.protos.SysStats.MeminfoValue meminfo = 1;
     */
    meminfo: SysStats_MeminfoValue[];
    /**
     * @generated from field: repeated perfetto.protos.SysStats.VmstatValue vmstat = 2;
     */
    vmstat: SysStats_VmstatValue[];
    /**
     * One entry per cpu.
     *
     * @generated from field: repeated perfetto.protos.SysStats.CpuTimes cpu_stat = 3;
     */
    cpuStat: SysStats_CpuTimes[];
    /**
     * Num processes forked since boot.
     * Populated only if FORK_COUNT in config.stat_counters.
     *
     * @generated from field: optional uint64 num_forks = 4;
     */
    numForks: bigint;
    /**
     * Total num of irqs serviced since boot.
     *
     * @generated from field: optional uint64 num_irq_total = 5;
     */
    numIrqTotal: bigint;
    /**
     * @generated from field: repeated perfetto.protos.SysStats.InterruptCount num_irq = 6;
     */
    numIrq: SysStats_InterruptCount[];
    /**
     * Total num of softirqs since boot.
     *
     * @generated from field: optional uint64 num_softirq_total = 7;
     */
    numSoftirqTotal: bigint;
    /**
     * Per-softirq count.
     *
     * @generated from field: repeated perfetto.protos.SysStats.InterruptCount num_softirq = 8;
     */
    numSoftirq: SysStats_InterruptCount[];
    /**
     * The time at which we finish collecting this set of samples;
     * the top-level packet timestamp is the time at which
     * we begin collection.
     *
     * @generated from field: optional uint64 collection_end_timestamp = 9;
     */
    collectionEndTimestamp: bigint;
    /**
     * One entry per device.
     *
     * @generated from field: repeated perfetto.protos.SysStats.DevfreqValue devfreq = 10;
     */
    devfreq: SysStats_DevfreqValue[];
    /**
     * Cpu current frequency from
     * /sys/devices/system/cpu/cpu*\/cpufreq/cpuinfo_cur_freq in kHz.
     * One entry per cpu. Report 0 for offline cpu
     *
     * @generated from field: repeated uint32 cpufreq_khz = 11;
     */
    cpufreqKhz: number[];
    /**
     * One entry per each node's zones.
     *
     * @generated from field: repeated perfetto.protos.SysStats.BuddyInfo buddy_info = 12;
     */
    buddyInfo: SysStats_BuddyInfo[];
    /**
     * One entry per disk device.
     *
     * @generated from field: repeated perfetto.protos.SysStats.DiskStat disk_stat = 13;
     */
    diskStat: SysStats_DiskStat[];
    /**
     * One entry per PsiResource type.
     *
     * @generated from field: repeated perfetto.protos.SysStats.PsiSample psi = 14;
     */
    psi: SysStats_PsiSample[];
    /**
     * @generated from field: repeated perfetto.protos.SysStats.ThermalZone thermal_zone = 15;
     */
    thermalZone: SysStats_ThermalZone[];
    /**
     * @generated from field: repeated perfetto.protos.SysStats.CpuIdleState cpuidle_state = 16;
     */
    cpuidleState: SysStats_CpuIdleState[];
    /**
     * Read GPU frequency info on Intel/AMD devices.
     *
     * @generated from field: repeated uint64 gpufreq_mhz = 17;
     */
    gpufreqMhz: bigint[];
};
/**
 * Describes the message perfetto.protos.SysStats.
 * Use `create(SysStatsSchema)` to create a new message.
 */
export declare const SysStatsSchema: GenMessage<SysStats>;
/**
 * Counters from /proc/meminfo. Values are in KB.
 *
 * @generated from message perfetto.protos.SysStats.MeminfoValue
 */
export type SysStats_MeminfoValue = Message<"perfetto.protos.SysStats.MeminfoValue"> & {
    /**
     * @generated from field: optional perfetto.protos.MeminfoCounters key = 1;
     */
    key: MeminfoCounters;
    /**
     * @generated from field: optional uint64 value = 2;
     */
    value: bigint;
};
/**
 * Describes the message perfetto.protos.SysStats.MeminfoValue.
 * Use `create(SysStats_MeminfoValueSchema)` to create a new message.
 */
export declare const SysStats_MeminfoValueSchema: GenMessage<SysStats_MeminfoValue>;
/**
 * Counter from /proc/vmstat. Units are often pages, not KB.
 *
 * @generated from message perfetto.protos.SysStats.VmstatValue
 */
export type SysStats_VmstatValue = Message<"perfetto.protos.SysStats.VmstatValue"> & {
    /**
     * @generated from field: optional perfetto.protos.VmstatCounters key = 1;
     */
    key: VmstatCounters;
    /**
     * @generated from field: optional uint64 value = 2;
     */
    value: bigint;
};
/**
 * Describes the message perfetto.protos.SysStats.VmstatValue.
 * Use `create(SysStats_VmstatValueSchema)` to create a new message.
 */
export declare const SysStats_VmstatValueSchema: GenMessage<SysStats_VmstatValue>;
/**
 * Times in each mode, since boot. Unit: nanoseconds.
 *
 * @generated from message perfetto.protos.SysStats.CpuTimes
 */
export type SysStats_CpuTimes = Message<"perfetto.protos.SysStats.CpuTimes"> & {
    /**
     * @generated from field: optional uint32 cpu_id = 1;
     */
    cpuId: number;
    /**
     * Time spent in user mode.
     *
     * @generated from field: optional uint64 user_ns = 2;
     */
    userNs: bigint;
    /**
     * Time spent in user mode (low prio).
     *
     * @generated from field: optional uint64 user_nice_ns = 3;
     */
    userNiceNs: bigint;
    /**
     * Time spent in system mode.
     *
     * @generated from field: optional uint64 system_mode_ns = 4;
     */
    systemModeNs: bigint;
    /**
     * Time spent in the idle task.
     *
     * @generated from field: optional uint64 idle_ns = 5;
     */
    idleNs: bigint;
    /**
     * Time spent waiting for I/O.
     *
     * @generated from field: optional uint64 io_wait_ns = 6;
     */
    ioWaitNs: bigint;
    /**
     * Time spent servicing interrupts.
     *
     * @generated from field: optional uint64 irq_ns = 7;
     */
    irqNs: bigint;
    /**
     * Time spent servicing softirqs.
     *
     * @generated from field: optional uint64 softirq_ns = 8;
     */
    softirqNs: bigint;
};
/**
 * Describes the message perfetto.protos.SysStats.CpuTimes.
 * Use `create(SysStats_CpuTimesSchema)` to create a new message.
 */
export declare const SysStats_CpuTimesSchema: GenMessage<SysStats_CpuTimes>;
/**
 * @generated from message perfetto.protos.SysStats.InterruptCount
 */
export type SysStats_InterruptCount = Message<"perfetto.protos.SysStats.InterruptCount"> & {
    /**
     * @generated from field: optional int32 irq = 1;
     */
    irq: number;
    /**
     * @generated from field: optional uint64 count = 2;
     */
    count: bigint;
};
/**
 * Describes the message perfetto.protos.SysStats.InterruptCount.
 * Use `create(SysStats_InterruptCountSchema)` to create a new message.
 */
export declare const SysStats_InterruptCountSchema: GenMessage<SysStats_InterruptCount>;
/**
 * Frequencies for /sys/class/devfreq/ entries in kHz.
 *
 * @generated from message perfetto.protos.SysStats.DevfreqValue
 */
export type SysStats_DevfreqValue = Message<"perfetto.protos.SysStats.DevfreqValue"> & {
    /**
     * @generated from field: optional string key = 1;
     */
    key: string;
    /**
     * @generated from field: optional uint64 value = 2;
     */
    value: bigint;
};
/**
 * Describes the message perfetto.protos.SysStats.DevfreqValue.
 * Use `create(SysStats_DevfreqValueSchema)` to create a new message.
 */
export declare const SysStats_DevfreqValueSchema: GenMessage<SysStats_DevfreqValue>;
/**
 * @generated from message perfetto.protos.SysStats.BuddyInfo
 */
export type SysStats_BuddyInfo = Message<"perfetto.protos.SysStats.BuddyInfo"> & {
    /**
     * @generated from field: optional string node = 1;
     */
    node: string;
    /**
     * @generated from field: optional string zone = 2;
     */
    zone: string;
    /**
     * @generated from field: repeated uint32 order_pages = 3;
     */
    orderPages: number[];
};
/**
 * Describes the message perfetto.protos.SysStats.BuddyInfo.
 * Use `create(SysStats_BuddyInfoSchema)` to create a new message.
 */
export declare const SysStats_BuddyInfoSchema: GenMessage<SysStats_BuddyInfo>;
/**
 * Counters from /proc/diskstats.
 *
 * @generated from message perfetto.protos.SysStats.DiskStat
 */
export type SysStats_DiskStat = Message<"perfetto.protos.SysStats.DiskStat"> & {
    /**
     * @generated from field: optional string device_name = 1;
     */
    deviceName: string;
    /**
     * @generated from field: optional uint64 read_sectors = 2;
     */
    readSectors: bigint;
    /**
     * @generated from field: optional uint64 read_time_ms = 3;
     */
    readTimeMs: bigint;
    /**
     * @generated from field: optional uint64 write_sectors = 4;
     */
    writeSectors: bigint;
    /**
     * @generated from field: optional uint64 write_time_ms = 5;
     */
    writeTimeMs: bigint;
    /**
     * @generated from field: optional uint64 discard_sectors = 6;
     */
    discardSectors: bigint;
    /**
     * @generated from field: optional uint64 discard_time_ms = 7;
     */
    discardTimeMs: bigint;
    /**
     * @generated from field: optional uint64 flush_count = 8;
     */
    flushCount: bigint;
    /**
     * @generated from field: optional uint64 flush_time_ms = 9;
     */
    flushTimeMs: bigint;
};
/**
 * Describes the message perfetto.protos.SysStats.DiskStat.
 * Use `create(SysStats_DiskStatSchema)` to create a new message.
 */
export declare const SysStats_DiskStatSchema: GenMessage<SysStats_DiskStat>;
/**
 * Reading from /proc/pressure/*.
 *
 * @generated from message perfetto.protos.SysStats.PsiSample
 */
export type SysStats_PsiSample = Message<"perfetto.protos.SysStats.PsiSample"> & {
    /**
     * @generated from field: optional perfetto.protos.SysStats.PsiSample.PsiResource resource = 1;
     */
    resource: SysStats_PsiSample_PsiResource;
    /**
     * Total absolute stall time (in nanos) for a given resource.
     * While PSI readings are in micros, we store in nanos for consistency with
     * most other time-based counters.
     *
     * @generated from field: optional uint64 total_ns = 2;
     */
    totalNs: bigint;
};
/**
 * Describes the message perfetto.protos.SysStats.PsiSample.
 * Use `create(SysStats_PsiSampleSchema)` to create a new message.
 */
export declare const SysStats_PsiSampleSchema: GenMessage<SysStats_PsiSample>;
/**
 * Type of resource that may have exhibited pressure stalls.
 *    * _SOME indicates some resource tasks stalled.
 *    * _FULL indicates all non-idle resource tasks stalled simultaneously.
 *
 * @generated from enum perfetto.protos.SysStats.PsiSample.PsiResource
 */
export declare enum SysStats_PsiSample_PsiResource {
    /**
     * @generated from enum value: PSI_RESOURCE_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * @generated from enum value: PSI_RESOURCE_CPU_SOME = 1;
     */
    CPU_SOME = 1,
    /**
     * @generated from enum value: PSI_RESOURCE_CPU_FULL = 2;
     */
    CPU_FULL = 2,
    /**
     * @generated from enum value: PSI_RESOURCE_IO_SOME = 3;
     */
    IO_SOME = 3,
    /**
     * @generated from enum value: PSI_RESOURCE_IO_FULL = 4;
     */
    IO_FULL = 4,
    /**
     * @generated from enum value: PSI_RESOURCE_MEMORY_SOME = 5;
     */
    MEMORY_SOME = 5,
    /**
     * @generated from enum value: PSI_RESOURCE_MEMORY_FULL = 6;
     */
    MEMORY_FULL = 6
}
/**
 * Describes the enum perfetto.protos.SysStats.PsiSample.PsiResource.
 */
export declare const SysStats_PsiSample_PsiResourceSchema: GenEnum<SysStats_PsiSample_PsiResource>;
/**
 * Reading from /sys/class/thermal/*.
 *
 * @generated from message perfetto.protos.SysStats.ThermalZone
 */
export type SysStats_ThermalZone = Message<"perfetto.protos.SysStats.ThermalZone"> & {
    /**
     * @generated from field: optional string name = 1;
     */
    name: string;
    /**
     * @generated from field: optional uint64 temp = 2;
     */
    temp: bigint;
    /**
     * @generated from field: optional string type = 3;
     */
    type: string;
};
/**
 * Describes the message perfetto.protos.SysStats.ThermalZone.
 * Use `create(SysStats_ThermalZoneSchema)` to create a new message.
 */
export declare const SysStats_ThermalZoneSchema: GenMessage<SysStats_ThermalZone>;
/**
 * Reading from /sys/devices/system/cpu/cpu*\/cpuidle/state*.
 *
 * @generated from message perfetto.protos.SysStats.CpuIdleStateEntry
 */
export type SysStats_CpuIdleStateEntry = Message<"perfetto.protos.SysStats.CpuIdleStateEntry"> & {
    /**
     * Name of the idle state, e.g. C1-C10
     *
     * @generated from field: optional string state = 1;
     */
    state: string;
    /**
     * @generated from field: optional uint64 duration_us = 2;
     */
    durationUs: bigint;
};
/**
 * Describes the message perfetto.protos.SysStats.CpuIdleStateEntry.
 * Use `create(SysStats_CpuIdleStateEntrySchema)` to create a new message.
 */
export declare const SysStats_CpuIdleStateEntrySchema: GenMessage<SysStats_CpuIdleStateEntry>;
/**
 * @generated from message perfetto.protos.SysStats.CpuIdleState
 */
export type SysStats_CpuIdleState = Message<"perfetto.protos.SysStats.CpuIdleState"> & {
    /**
     * @generated from field: optional uint32 cpu_id = 1;
     */
    cpuId: number;
    /**
     * @generated from field: repeated perfetto.protos.SysStats.CpuIdleStateEntry cpuidle_state_entry = 2;
     */
    cpuidleStateEntry: SysStats_CpuIdleStateEntry[];
};
/**
 * Describes the message perfetto.protos.SysStats.CpuIdleState.
 * Use `create(SysStats_CpuIdleStateSchema)` to create a new message.
 */
export declare const SysStats_CpuIdleStateSchema: GenMessage<SysStats_CpuIdleState>;
//# sourceMappingURL=sys_stats_pb.d.ts.map