import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1";
import type { ObservableEvents, ObservableEvents_Type } from "../common/observable_events_pb";
import type { TracingServiceState } from "../common/tracing_service_state_pb";
import type { TracingServiceCapabilities } from "../common/tracing_service_capabilities_pb";
import type { TraceStats } from "../common/trace_stats_pb";
import type { TraceConfig } from "../config/trace_config_pb";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/perfetto/ipc/consumer_port.proto.
 */
export declare const file_protos_perfetto_ipc_consumer_port: GenFile;
/**
 * Arguments for rpc EnableTracing().
 *
 * @generated from message perfetto.protos.EnableTracingRequest
 */
export type EnableTracingRequest = Message<"perfetto.protos.EnableTracingRequest"> & {
    /**
     * @generated from field: optional perfetto.protos.TraceConfig trace_config = 1;
     */
    traceConfig?: TraceConfig;
    /**
     * Introduced in Android Q. This is used for re-attaching to the end-of-trace
     * EnableTracingResponse notification after a Detach+Attach request.
     * When this flag is set the |trace_config| is ignored and no method is called
     * on the tracing service.
     *
     * @generated from field: optional bool attach_notification_only = 2;
     */
    attachNotificationOnly: boolean;
};
/**
 * Describes the message perfetto.protos.EnableTracingRequest.
 * Use `create(EnableTracingRequestSchema)` to create a new message.
 */
export declare const EnableTracingRequestSchema: GenMessage<EnableTracingRequest>;
/**
 * @generated from message perfetto.protos.EnableTracingResponse
 */
export type EnableTracingResponse = Message<"perfetto.protos.EnableTracingResponse"> & {
    /**
     * @generated from oneof perfetto.protos.EnableTracingResponse.state
     */
    state: {
        /**
         * @generated from field: bool disabled = 1;
         */
        value: boolean;
        case: "disabled";
    } | {
        case: undefined;
        value?: undefined;
    };
    /**
     * If present and non-empty tracing was disabled because of an error.
     * Introduced in Android S.
     *
     * @generated from field: optional string error = 3;
     */
    error: string;
};
/**
 * Describes the message perfetto.protos.EnableTracingResponse.
 * Use `create(EnableTracingResponseSchema)` to create a new message.
 */
export declare const EnableTracingResponseSchema: GenMessage<EnableTracingResponse>;
/**
 * Arguments for rpc StartTracing().
 *
 * @generated from message perfetto.protos.StartTracingRequest
 */
export type StartTracingRequest = Message<"perfetto.protos.StartTracingRequest"> & {};
/**
 * Describes the message perfetto.protos.StartTracingRequest.
 * Use `create(StartTracingRequestSchema)` to create a new message.
 */
export declare const StartTracingRequestSchema: GenMessage<StartTracingRequest>;
/**
 * @generated from message perfetto.protos.StartTracingResponse
 */
export type StartTracingResponse = Message<"perfetto.protos.StartTracingResponse"> & {};
/**
 * Describes the message perfetto.protos.StartTracingResponse.
 * Use `create(StartTracingResponseSchema)` to create a new message.
 */
export declare const StartTracingResponseSchema: GenMessage<StartTracingResponse>;
/**
 * Arguments for rpc ChangeTraceConfig().
 *
 * @generated from message perfetto.protos.ChangeTraceConfigRequest
 */
export type ChangeTraceConfigRequest = Message<"perfetto.protos.ChangeTraceConfigRequest"> & {
    /**
     * @generated from field: optional perfetto.protos.TraceConfig trace_config = 1;
     */
    traceConfig?: TraceConfig;
};
/**
 * Describes the message perfetto.protos.ChangeTraceConfigRequest.
 * Use `create(ChangeTraceConfigRequestSchema)` to create a new message.
 */
export declare const ChangeTraceConfigRequestSchema: GenMessage<ChangeTraceConfigRequest>;
/**
 * @generated from message perfetto.protos.ChangeTraceConfigResponse
 */
export type ChangeTraceConfigResponse = Message<"perfetto.protos.ChangeTraceConfigResponse"> & {};
/**
 * Describes the message perfetto.protos.ChangeTraceConfigResponse.
 * Use `create(ChangeTraceConfigResponseSchema)` to create a new message.
 */
export declare const ChangeTraceConfigResponseSchema: GenMessage<ChangeTraceConfigResponse>;
/**
 * Arguments for rpc DisableTracing().
 *
 * TODO: not supported yet, selectively disable only some data sources.
 * repeated string data_source_name;
 *
 * @generated from message perfetto.protos.DisableTracingRequest
 */
export type DisableTracingRequest = Message<"perfetto.protos.DisableTracingRequest"> & {};
/**
 * Describes the message perfetto.protos.DisableTracingRequest.
 * Use `create(DisableTracingRequestSchema)` to create a new message.
 */
export declare const DisableTracingRequestSchema: GenMessage<DisableTracingRequest>;
/**
 * @generated from message perfetto.protos.DisableTracingResponse
 */
export type DisableTracingResponse = Message<"perfetto.protos.DisableTracingResponse"> & {};
/**
 * Describes the message perfetto.protos.DisableTracingResponse.
 * Use `create(DisableTracingResponseSchema)` to create a new message.
 */
export declare const DisableTracingResponseSchema: GenMessage<DisableTracingResponse>;
/**
 * Arguments for rpc ReadBuffers().
 *
 * The |id|s of the buffer, as passed to CreateBuffers().
 * TODO: repeated uint32 buffer_ids = 1;
 *
 * @generated from message perfetto.protos.ReadBuffersRequest
 */
export type ReadBuffersRequest = Message<"perfetto.protos.ReadBuffersRequest"> & {};
/**
 * Describes the message perfetto.protos.ReadBuffersRequest.
 * Use `create(ReadBuffersRequestSchema)` to create a new message.
 */
export declare const ReadBuffersRequestSchema: GenMessage<ReadBuffersRequest>;
/**
 * TODO: uint32 buffer_id = 1;
 *
 * @generated from message perfetto.protos.ReadBuffersResponse
 */
export type ReadBuffersResponse = Message<"perfetto.protos.ReadBuffersResponse"> & {
    /**
     * @generated from field: repeated perfetto.protos.ReadBuffersResponse.Slice slices = 2;
     */
    slices: ReadBuffersResponse_Slice[];
};
/**
 * Describes the message perfetto.protos.ReadBuffersResponse.
 * Use `create(ReadBuffersResponseSchema)` to create a new message.
 */
export declare const ReadBuffersResponseSchema: GenMessage<ReadBuffersResponse>;
/**
 * Each streaming reply returns one or more slices for one or more trace
 * packets, or even just a portion of it (if it's too big to fit within one
 * IPC). The returned slices are ordered and contiguous: packets' slices are
 * not interleaved and slices are sent only once all slices for a packet are
 * available (i.e. the consumer will never see any gap).
 *
 * @generated from message perfetto.protos.ReadBuffersResponse.Slice
 */
export type ReadBuffersResponse_Slice = Message<"perfetto.protos.ReadBuffersResponse.Slice"> & {
    /**
     * @generated from field: optional bytes data = 1;
     */
    data: Uint8Array;
    /**
     * When true, this is the last slice for the packet. A ReadBufferResponse
     * might have no slices marked as |last_slice_for_packet|==true, in the case
     * of a very large packet that gets chunked into several IPCs (in which case
     * only the last IPC for the packet will have this flag set).
     *
     * @generated from field: optional bool last_slice_for_packet = 2;
     */
    lastSliceForPacket: boolean;
};
/**
 * Describes the message perfetto.protos.ReadBuffersResponse.Slice.
 * Use `create(ReadBuffersResponse_SliceSchema)` to create a new message.
 */
export declare const ReadBuffersResponse_SliceSchema: GenMessage<ReadBuffersResponse_Slice>;
/**
 * Arguments for rpc FreeBuffers().
 *
 * @generated from message perfetto.protos.FreeBuffersRequest
 */
export type FreeBuffersRequest = Message<"perfetto.protos.FreeBuffersRequest"> & {
    /**
     * The |id|s of the buffer, as passed to CreateBuffers().
     *
     * @generated from field: repeated uint32 buffer_ids = 1;
     */
    bufferIds: number[];
};
/**
 * Describes the message perfetto.protos.FreeBuffersRequest.
 * Use `create(FreeBuffersRequestSchema)` to create a new message.
 */
export declare const FreeBuffersRequestSchema: GenMessage<FreeBuffersRequest>;
/**
 * @generated from message perfetto.protos.FreeBuffersResponse
 */
export type FreeBuffersResponse = Message<"perfetto.protos.FreeBuffersResponse"> & {};
/**
 * Describes the message perfetto.protos.FreeBuffersResponse.
 * Use `create(FreeBuffersResponseSchema)` to create a new message.
 */
export declare const FreeBuffersResponseSchema: GenMessage<FreeBuffersResponse>;
/**
 * Arguments for rpc Flush().
 *
 * @generated from message perfetto.protos.FlushRequest
 */
export type FlushRequest = Message<"perfetto.protos.FlushRequest"> & {
    /**
     * @generated from field: optional uint32 timeout_ms = 1;
     */
    timeoutMs: number;
    /**
     * More details such as flush reason and originator. Introduced in v38 / V.
     * See FlushFlags in include/perfetto/ext/tracing/core/flush_flags.h.
     *
     * @generated from field: optional uint64 flags = 2;
     */
    flags: bigint;
};
/**
 * Describes the message perfetto.protos.FlushRequest.
 * Use `create(FlushRequestSchema)` to create a new message.
 */
export declare const FlushRequestSchema: GenMessage<FlushRequest>;
/**
 * @generated from message perfetto.protos.FlushResponse
 */
export type FlushResponse = Message<"perfetto.protos.FlushResponse"> & {};
/**
 * Describes the message perfetto.protos.FlushResponse.
 * Use `create(FlushResponseSchema)` to create a new message.
 */
export declare const FlushResponseSchema: GenMessage<FlushResponse>;
/**
 * Arguments for rpc Detach
 *
 * @generated from message perfetto.protos.DetachRequest
 */
export type DetachRequest = Message<"perfetto.protos.DetachRequest"> & {
    /**
     * @generated from field: optional string key = 1;
     */
    key: string;
};
/**
 * Describes the message perfetto.protos.DetachRequest.
 * Use `create(DetachRequestSchema)` to create a new message.
 */
export declare const DetachRequestSchema: GenMessage<DetachRequest>;
/**
 * @generated from message perfetto.protos.DetachResponse
 */
export type DetachResponse = Message<"perfetto.protos.DetachResponse"> & {};
/**
 * Describes the message perfetto.protos.DetachResponse.
 * Use `create(DetachResponseSchema)` to create a new message.
 */
export declare const DetachResponseSchema: GenMessage<DetachResponse>;
/**
 * Arguments for rpc Attach.
 *
 * @generated from message perfetto.protos.AttachRequest
 */
export type AttachRequest = Message<"perfetto.protos.AttachRequest"> & {
    /**
     * @generated from field: optional string key = 1;
     */
    key: string;
};
/**
 * Describes the message perfetto.protos.AttachRequest.
 * Use `create(AttachRequestSchema)` to create a new message.
 */
export declare const AttachRequestSchema: GenMessage<AttachRequest>;
/**
 * @generated from message perfetto.protos.AttachResponse
 */
export type AttachResponse = Message<"perfetto.protos.AttachResponse"> & {
    /**
     * @generated from field: optional perfetto.protos.TraceConfig trace_config = 1;
     */
    traceConfig?: TraceConfig;
};
/**
 * Describes the message perfetto.protos.AttachResponse.
 * Use `create(AttachResponseSchema)` to create a new message.
 */
export declare const AttachResponseSchema: GenMessage<AttachResponse>;
/**
 * @generated from message perfetto.protos.GetTraceStatsRequest
 */
export type GetTraceStatsRequest = Message<"perfetto.protos.GetTraceStatsRequest"> & {};
/**
 * Describes the message perfetto.protos.GetTraceStatsRequest.
 * Use `create(GetTraceStatsRequestSchema)` to create a new message.
 */
export declare const GetTraceStatsRequestSchema: GenMessage<GetTraceStatsRequest>;
/**
 * @generated from message perfetto.protos.GetTraceStatsResponse
 */
export type GetTraceStatsResponse = Message<"perfetto.protos.GetTraceStatsResponse"> & {
    /**
     * @generated from field: optional perfetto.protos.TraceStats trace_stats = 1;
     */
    traceStats?: TraceStats;
};
/**
 * Describes the message perfetto.protos.GetTraceStatsResponse.
 * Use `create(GetTraceStatsResponseSchema)` to create a new message.
 */
export declare const GetTraceStatsResponseSchema: GenMessage<GetTraceStatsResponse>;
/**
 * To stop observing events of a certain type, send a request with the remaining
 * types. To stop observing completely, send an empty request.
 *
 * @generated from message perfetto.protos.ObserveEventsRequest
 */
export type ObserveEventsRequest = Message<"perfetto.protos.ObserveEventsRequest"> & {
    /**
     * @generated from field: repeated perfetto.protos.ObservableEvents.Type events_to_observe = 1;
     */
    eventsToObserve: ObservableEvents_Type[];
};
/**
 * Describes the message perfetto.protos.ObserveEventsRequest.
 * Use `create(ObserveEventsRequestSchema)` to create a new message.
 */
export declare const ObserveEventsRequestSchema: GenMessage<ObserveEventsRequest>;
/**
 * @generated from message perfetto.protos.ObserveEventsResponse
 */
export type ObserveEventsResponse = Message<"perfetto.protos.ObserveEventsResponse"> & {
    /**
     * @generated from field: optional perfetto.protos.ObservableEvents events = 1;
     */
    events?: ObservableEvents;
};
/**
 * Describes the message perfetto.protos.ObserveEventsResponse.
 * Use `create(ObserveEventsResponseSchema)` to create a new message.
 */
export declare const ObserveEventsResponseSchema: GenMessage<ObserveEventsResponse>;
/**
 * Arguments for rpc QueryServiceState.
 *
 * @generated from message perfetto.protos.QueryServiceStateRequest
 */
export type QueryServiceStateRequest = Message<"perfetto.protos.QueryServiceStateRequest"> & {
    /**
     * If set, only the TracingServiceState.tracing_sessions is filled. Producers
     * and data sources are omitted.
     *
     * @generated from field: optional bool sessions_only = 1;
     */
    sessionsOnly: boolean;
};
/**
 * Describes the message perfetto.protos.QueryServiceStateRequest.
 * Use `create(QueryServiceStateRequestSchema)` to create a new message.
 */
export declare const QueryServiceStateRequestSchema: GenMessage<QueryServiceStateRequest>;
/**
 * @generated from message perfetto.protos.QueryServiceStateResponse
 */
export type QueryServiceStateResponse = Message<"perfetto.protos.QueryServiceStateResponse"> & {
    /**
     * In order to avoid hitting IPC message size limitations, the service will
     * return >1 replies for each query, chunking the TracingServiceState. The
     * receiver is expected to merge replies together and parse that when the
     * last reply is received (i.e. when IPC's |has_more| == false).
     *
     * @generated from field: optional perfetto.protos.TracingServiceState service_state = 1;
     */
    serviceState?: TracingServiceState;
};
/**
 * Describes the message perfetto.protos.QueryServiceStateResponse.
 * Use `create(QueryServiceStateResponseSchema)` to create a new message.
 */
export declare const QueryServiceStateResponseSchema: GenMessage<QueryServiceStateResponse>;
/**
 * Arguments for rpc QueryCapabilities.
 *
 * @generated from message perfetto.protos.QueryCapabilitiesRequest
 */
export type QueryCapabilitiesRequest = Message<"perfetto.protos.QueryCapabilitiesRequest"> & {};
/**
 * Describes the message perfetto.protos.QueryCapabilitiesRequest.
 * Use `create(QueryCapabilitiesRequestSchema)` to create a new message.
 */
export declare const QueryCapabilitiesRequestSchema: GenMessage<QueryCapabilitiesRequest>;
/**
 * @generated from message perfetto.protos.QueryCapabilitiesResponse
 */
export type QueryCapabilitiesResponse = Message<"perfetto.protos.QueryCapabilitiesResponse"> & {
    /**
     * @generated from field: optional perfetto.protos.TracingServiceCapabilities capabilities = 1;
     */
    capabilities?: TracingServiceCapabilities;
};
/**
 * Describes the message perfetto.protos.QueryCapabilitiesResponse.
 * Use `create(QueryCapabilitiesResponseSchema)` to create a new message.
 */
export declare const QueryCapabilitiesResponseSchema: GenMessage<QueryCapabilitiesResponse>;
/**
 * Arguments for rpc SaveTraceForBugreport.
 *
 * @generated from message perfetto.protos.SaveTraceForBugreportRequest
 */
export type SaveTraceForBugreportRequest = Message<"perfetto.protos.SaveTraceForBugreportRequest"> & {};
/**
 * Describes the message perfetto.protos.SaveTraceForBugreportRequest.
 * Use `create(SaveTraceForBugreportRequestSchema)` to create a new message.
 */
export declare const SaveTraceForBugreportRequestSchema: GenMessage<SaveTraceForBugreportRequest>;
/**
 * This response is sent only after the trace was saved into file (if succeeded)
 * or something failed.
 *
 * @generated from message perfetto.protos.SaveTraceForBugreportResponse
 */
export type SaveTraceForBugreportResponse = Message<"perfetto.protos.SaveTraceForBugreportResponse"> & {
    /**
     * If true, an eligible the trace was saved into a known location (on Android
     * /data/misc/perfetto-traces, see GetBugreportTracePath()).
     * If false no trace with bugreport_score > 0 was found or an error occurred.
     * see |msg| in that case for details about the failure.
     *
     * @generated from field: optional bool success = 1;
     */
    success: boolean;
    /**
     * @generated from field: optional string msg = 2;
     */
    msg: string;
};
/**
 * Describes the message perfetto.protos.SaveTraceForBugreportResponse.
 * Use `create(SaveTraceForBugreportResponseSchema)` to create a new message.
 */
export declare const SaveTraceForBugreportResponseSchema: GenMessage<SaveTraceForBugreportResponse>;
/**
 * Arguments for rpc CloneSession.
 *
 * @generated from message perfetto.protos.CloneSessionRequest
 */
export type CloneSessionRequest = Message<"perfetto.protos.CloneSessionRequest"> & {
    /**
     * @generated from oneof perfetto.protos.CloneSessionRequest.selector
     */
    selector: {
        /**
         * The session ID to clone. If session_id == kBugreportSessionId (0xff...ff)
         * the session with the highest bugreport score is cloned (if any exists).
         *
         * @generated from field: uint64 session_id = 1;
         */
        value: bigint;
        case: "sessionId";
    } | {
        /**
         * The unique_session_name of the tracing session to clone. Tracing sessions
         * that are clones of other tracing sessions are ignored.
         *
         * @generated from field: string unique_session_name = 4;
         */
        value: string;
        case: "uniqueSessionName";
    } | {
        case: undefined;
        value?: undefined;
    };
    /**
     * If set, the trace filter will not have effect on the cloned session.
     * Used for bugreports.
     *
     * @generated from field: optional bool skip_trace_filter = 2;
     */
    skipTraceFilter: boolean;
    /**
     * If set, affects the generation of the FlushFlags::CloneTarget to be set
     * to kBugreport when requesting the flush to the producers.
     *
     * @generated from field: optional bool for_bugreport = 3;
     */
    forBugreport: boolean;
    /**
     * If set, this is stored in the trace as name of the trigger that caused the
     * clone.
     *
     * @generated from field: optional string clone_trigger_name = 5;
     */
    cloneTriggerName: string;
    /**
     * If set, this is stored in the trace as name of the producer that triggered
     * the clone.
     *
     * @generated from field: optional string clone_trigger_producer_name = 6;
     */
    cloneTriggerProducerName: string;
    /**
     * If set, this is stored in the trace as uid of the producer that triggered
     * the clone.
     *
     * @generated from field: optional int32 clone_trigger_trusted_producer_uid = 7;
     */
    cloneTriggerTrustedProducerUid: number;
    /**
     * If set, this is stored in the trace as timestamp of the trigger that caused
     * the clone.
     *
     * @generated from field: optional uint64 clone_trigger_boot_time_ns = 8;
     */
    cloneTriggerBootTimeNs: bigint;
};
/**
 * Describes the message perfetto.protos.CloneSessionRequest.
 * Use `create(CloneSessionRequestSchema)` to create a new message.
 */
export declare const CloneSessionRequestSchema: GenMessage<CloneSessionRequest>;
/**
 * @generated from message perfetto.protos.CloneSessionResponse
 */
export type CloneSessionResponse = Message<"perfetto.protos.CloneSessionResponse"> & {
    /**
     * If true, the clone was successful. If false it failed and |error| contains
     * the details about the failure.
     *
     * @generated from field: optional bool success = 1;
     */
    success: boolean;
    /**
     * @generated from field: optional string error = 2;
     */
    error: string;
    /**
     * The UUID of the cloned session.
     *
     * @generated from field: optional int64 uuid_msb = 3;
     */
    uuidMsb: bigint;
    /**
     * @generated from field: optional int64 uuid_lsb = 4;
     */
    uuidLsb: bigint;
};
/**
 * Describes the message perfetto.protos.CloneSessionResponse.
 * Use `create(CloneSessionResponseSchema)` to create a new message.
 */
export declare const CloneSessionResponseSchema: GenMessage<CloneSessionResponse>;
/**
 * IPC interface definition for the consumer port of the tracing service.
 *
 * @generated from service perfetto.protos.ConsumerPort
 */
export declare const ConsumerPort: GenService<{
    /**
     * Enables tracing for one or more data sources. At least one buffer must have
     * been previously created. The EnableTracingResponse is sent when tracing is
     * disabled (either explicitly or because of the |duration_ms| expired).
     * If |deferred_start| == true in the passed TraceConfig, all the tracing
     * harness is brought up (creating buffers and data sources) without actually
     * starting the data sources. Data sources will be started upon an explicit
     * StartTracing() call.
     * Note that |deferred_start| and StartTracing() have been introduced only
     * in Android Q and are not supported in Android P.
     *
     * @generated from rpc perfetto.protos.ConsumerPort.EnableTracing
     */
    enableTracing: {
        methodKind: "unary";
        input: typeof EnableTracingRequestSchema;
        output: typeof EnableTracingResponseSchema;
    };
    /**
     * Disables tracing for one or more data sources.
     *
     * @generated from rpc perfetto.protos.ConsumerPort.DisableTracing
     */
    disableTracing: {
        methodKind: "unary";
        input: typeof DisableTracingRequestSchema;
        output: typeof DisableTracingResponseSchema;
    };
    /**
     * Streams back the contents of one or more buffers. One call is enough to
     * drain all the buffers. The response consists in a sequence of
     * ReadBufferResponse messages (hence the "stream" in the return type), each
     * carrying one or more TracePacket(s). An EOF flag is attached to the last
     * ReadBufferResponse through the |has_more| == false field.
     *
     * @generated from rpc perfetto.protos.ConsumerPort.ReadBuffers
     */
    readBuffers: {
        methodKind: "server_streaming";
        input: typeof ReadBuffersRequestSchema;
        output: typeof ReadBuffersResponseSchema;
    };
    /**
     * Destroys the buffers previously created. Note: all buffers are destroyed
     * implicitly if the Consumer disconnects.
     *
     * @generated from rpc perfetto.protos.ConsumerPort.FreeBuffers
     */
    freeBuffers: {
        methodKind: "unary";
        input: typeof FreeBuffersRequestSchema;
        output: typeof FreeBuffersResponseSchema;
    };
    /**
     * Asks the service to request to all data sources involved in the tracing
     * session to commit their data into the trace buffer. The FlushResponse is
     * sent only:
     * - After the data has been committed (in which case FlushResponse succeeds)
     * or
     * - After FlushRequest.timeout_ms milliseconds (in which case the
     *   FlushResponse is rejected and fails).
     *
     * @generated from rpc perfetto.protos.ConsumerPort.Flush
     */
    flush: {
        methodKind: "unary";
        input: typeof FlushRequestSchema;
        output: typeof FlushResponseSchema;
    };
    /**
     * Starts tracing. Only valid if EnableTracing() was called setting
     * deferred_start = true in the TraceConfig passed to EnableTracing().
     *
     * @generated from rpc perfetto.protos.ConsumerPort.StartTracing
     */
    startTracing: {
        methodKind: "unary";
        input: typeof StartTracingRequestSchema;
        output: typeof StartTracingResponseSchema;
    };
    /**
     * Changes the configuration for a running tracing session; only possible
     * for a subset of configuration options.
     *
     * @generated from rpc perfetto.protos.ConsumerPort.ChangeTraceConfig
     */
    changeTraceConfig: {
        methodKind: "unary";
        input: typeof ChangeTraceConfigRequestSchema;
        output: typeof ChangeTraceConfigResponseSchema;
    };
    /**
     * Allows the consumer to detach from the session. The session will keep
     * running even if the consumer disconnects and the consumer will not receive
     * any further IPC until reattached.
     *
     * @generated from rpc perfetto.protos.ConsumerPort.Detach
     */
    detach: {
        methodKind: "unary";
        input: typeof DetachRequestSchema;
        output: typeof DetachResponseSchema;
    };
    /**
     * Allows the consumer to re-attach to a previously detached session. The
     * consumer will start receiving IPC notification for that session.
     * The session will be terminated if the consumer closes the IPC channel, as
     * in the standard non-detached case.
     *
     * @generated from rpc perfetto.protos.ConsumerPort.Attach
     */
    attach: {
        methodKind: "unary";
        input: typeof AttachRequestSchema;
        output: typeof AttachResponseSchema;
    };
    /**
     * Allows the consumer to obtain statistics about the current tracing session,
     * such as buffer usage stats. Intended for debugging or UI use.
     *
     * @generated from rpc perfetto.protos.ConsumerPort.GetTraceStats
     */
    getTraceStats: {
        methodKind: "unary";
        input: typeof GetTraceStatsRequestSchema;
        output: typeof GetTraceStatsResponseSchema;
    };
    /**
     * Allows the consumer to observe certain state changes, such as data source
     * instances starting to record.
     *
     * @generated from rpc perfetto.protos.ConsumerPort.ObserveEvents
     */
    observeEvents: {
        methodKind: "server_streaming";
        input: typeof ObserveEventsRequestSchema;
        output: typeof ObserveEventsResponseSchema;
    };
    /**
     * Allows to obtain the list of data sources connected and their descriptors.
     *
     * @generated from rpc perfetto.protos.ConsumerPort.QueryServiceState
     */
    queryServiceState: {
        methodKind: "server_streaming";
        input: typeof QueryServiceStateRequestSchema;
        output: typeof QueryServiceStateResponseSchema;
    };
    /**
     * Obtains a list of features supported by the service. This is to deal with
     * backward/forward compatibility and feature detection.
     *
     * @generated from rpc perfetto.protos.ConsumerPort.QueryCapabilities
     */
    queryCapabilities: {
        methodKind: "unary";
        input: typeof QueryCapabilitiesRequestSchema;
        output: typeof QueryCapabilitiesResponseSchema;
    };
    /**
     * This method has been deprecated and removed in Android U in favour of
     * CloneSession.
     *
     * @generated from rpc perfetto.protos.ConsumerPort.SaveTraceForBugreport
     */
    saveTraceForBugreport: {
        methodKind: "unary";
        input: typeof SaveTraceForBugreportRequestSchema;
        output: typeof SaveTraceForBugreportResponseSchema;
    };
    /**
     * Clones an existing tracing session and binds the consumer to it (as if
     * the session was created via EnableTracing), copying over all the tracing
     * data (including metadata and stats).
     * The cloned session is stopped and read-only (as if DisableTracing was
     * invoked).
     * A consumer can clone a session only if the uid of the consumer matches the
     * uid of the source session or if the consumer uid is 0 (root).
     *
     * @generated from rpc perfetto.protos.ConsumerPort.CloneSession
     */
    cloneSession: {
        methodKind: "unary";
        input: typeof CloneSessionRequestSchema;
        output: typeof CloneSessionResponseSchema;
    };
}>;
//# sourceMappingURL=consumer_port_pb.d.ts.map