import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { FtraceDescriptor } from "./ftrace_descriptor_pb";
import type { GpuCounterDescriptor } from "./gpu_counter_descriptor_pb";
import type { TrackEventDescriptor } from "./track_event_descriptor_pb";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/perfetto/common/data_source_descriptor.proto.
 */
export declare const file_protos_perfetto_common_data_source_descriptor: GenFile;
/**
 * This message is sent from Producer(s) to the tracing Service when registering
 * to advertise their capabilities. It describes the structure of tracing
 * protos that will be produced by the data source and the supported filters.
 *
 * @generated from message perfetto.protos.DataSourceDescriptor
 */
export type DataSourceDescriptor = Message<"perfetto.protos.DataSourceDescriptor"> & {
    /**
     * e.g., "linux.ftrace", "chromium.tracing"
     *
     * @generated from field: optional string name = 1;
     */
    name: string;
    /**
     * When non-zero, this is a unique ID within the scope of the Producer for
     * this data source (it is NOT globally unique). This is useful to
     * differentiate between data sources with matching names when calling
     * UpdateDataSource(). This field has been introduced in November 2021
     * (v22, Android T) and is not supported on older versions.
     *
     * @generated from field: optional uint64 id = 7;
     */
    id: bigint;
    /**
     * When true the data source is expected to ack the stop request through the
     * NotifyDataSourceStopped() IPC. This field has been introduced after
     * Android P in Jul 2018 and is not supported on older versions.
     *
     * @generated from field: optional bool will_notify_on_stop = 2;
     */
    willNotifyOnStop: boolean;
    /**
     * When true the data source is expected to ack the start request through the
     * NotifyDataSourceStarted() IPC. This field has been introduced after
     * Android P in March 2019 and is not supported on older versions.
     *
     * @generated from field: optional bool will_notify_on_start = 3;
     */
    willNotifyOnStart: boolean;
    /**
     * If true, opt into receiving the ClearIncrementalState() IPC. This should be
     * set if the data source writes packets that refer to previous trace
     * contents, and knows how to stop referring to the already-emitted data.
     *
     * @generated from field: optional bool handles_incremental_state_clear = 4;
     */
    handlesIncrementalStateClear: boolean;
    /**
     * If true, indicates that the data source does nothing upon Flush. This
     * allows the service to reduce the flush-related IPC traffic and better deal
     * with frozen producers (see go/perfetto-frozen). This is usually the case
     * for data sources like 'track_event' that don't have access to the various
     * thread task runners to post a flush task and rely purely on server-side
     * scraping.
     * Introduced in v39 / Android V.
     *
     * @generated from field: optional bool no_flush = 9;
     */
    noFlush: boolean;
    /**
     * Optional specification about available GPU counters.
     *
     * @generated from field: optional perfetto.protos.GpuCounterDescriptor gpu_counter_descriptor = 5;
     */
    gpuCounterDescriptor?: GpuCounterDescriptor;
    /**
     * @generated from field: optional perfetto.protos.TrackEventDescriptor track_event_descriptor = 6;
     */
    trackEventDescriptor?: TrackEventDescriptor;
    /**
     * @generated from field: optional perfetto.protos.FtraceDescriptor ftrace_descriptor = 8;
     */
    ftraceDescriptor?: FtraceDescriptor;
};
/**
 * Describes the message perfetto.protos.DataSourceDescriptor.
 * Use `create(DataSourceDescriptorSchema)` to create a new message.
 */
export declare const DataSourceDescriptorSchema: GenMessage<DataSourceDescriptor>;
//# sourceMappingURL=data_source_descriptor_pb.d.ts.map