import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/perfetto/ipc/wire_protocol.proto.
 */
export declare const file_protos_perfetto_ipc_wire_protocol: GenFile;
/**
 * @generated from message perfetto.protos.IPCFrame
 */
export type IPCFrame = Message<"perfetto.protos.IPCFrame"> & {
    /**
     * The client is expected to send requests with monotonically increasing
     * request_id. The host will match the request_id sent from the client.
     * In the case of a Streaming response (has_more = true) the host will send
     * several InvokeMethodReply with the same request_id.
     *
     * @generated from field: optional uint64 request_id = 2;
     */
    requestId: bigint;
    /**
     * @generated from oneof perfetto.protos.IPCFrame.msg
     */
    msg: {
        /**
         * @generated from field: perfetto.protos.IPCFrame.BindService msg_bind_service = 3;
         */
        value: IPCFrame_BindService;
        case: "msgBindService";
    } | {
        /**
         * @generated from field: perfetto.protos.IPCFrame.BindServiceReply msg_bind_service_reply = 4;
         */
        value: IPCFrame_BindServiceReply;
        case: "msgBindServiceReply";
    } | {
        /**
         * @generated from field: perfetto.protos.IPCFrame.InvokeMethod msg_invoke_method = 5;
         */
        value: IPCFrame_InvokeMethod;
        case: "msgInvokeMethod";
    } | {
        /**
         * @generated from field: perfetto.protos.IPCFrame.InvokeMethodReply msg_invoke_method_reply = 6;
         */
        value: IPCFrame_InvokeMethodReply;
        case: "msgInvokeMethodReply";
    } | {
        /**
         * @generated from field: perfetto.protos.IPCFrame.RequestError msg_request_error = 7;
         */
        value: IPCFrame_RequestError;
        case: "msgRequestError";
    } | {
        /**
         * @generated from field: perfetto.protos.IPCFrame.SetPeerIdentity set_peer_identity = 8;
         */
        value: IPCFrame_SetPeerIdentity;
        case: "setPeerIdentity";
    } | {
        case: undefined;
        value?: undefined;
    };
    /**
     * Used only in unittests to generate a parsable message of arbitrary size.
     *
     * @generated from field: repeated bytes data_for_testing = 1;
     */
    dataForTesting: Uint8Array[];
};
/**
 * Describes the message perfetto.protos.IPCFrame.
 * Use `create(IPCFrameSchema)` to create a new message.
 */
export declare const IPCFrameSchema: GenMessage<IPCFrame>;
/**
 * Client -> Host.
 *
 * @generated from message perfetto.protos.IPCFrame.BindService
 */
export type IPCFrame_BindService = Message<"perfetto.protos.IPCFrame.BindService"> & {
    /**
     * @generated from field: optional string service_name = 1;
     */
    serviceName: string;
};
/**
 * Describes the message perfetto.protos.IPCFrame.BindService.
 * Use `create(IPCFrame_BindServiceSchema)` to create a new message.
 */
export declare const IPCFrame_BindServiceSchema: GenMessage<IPCFrame_BindService>;
/**
 * Host -> Client.
 *
 * @generated from message perfetto.protos.IPCFrame.BindServiceReply
 */
export type IPCFrame_BindServiceReply = Message<"perfetto.protos.IPCFrame.BindServiceReply"> & {
    /**
     * @generated from field: optional bool success = 1;
     */
    success: boolean;
    /**
     * @generated from field: optional uint32 service_id = 2;
     */
    serviceId: number;
    /**
     * @generated from field: repeated perfetto.protos.IPCFrame.BindServiceReply.MethodInfo methods = 3;
     */
    methods: IPCFrame_BindServiceReply_MethodInfo[];
};
/**
 * Describes the message perfetto.protos.IPCFrame.BindServiceReply.
 * Use `create(IPCFrame_BindServiceReplySchema)` to create a new message.
 */
export declare const IPCFrame_BindServiceReplySchema: GenMessage<IPCFrame_BindServiceReply>;
/**
 * @generated from message perfetto.protos.IPCFrame.BindServiceReply.MethodInfo
 */
export type IPCFrame_BindServiceReply_MethodInfo = Message<"perfetto.protos.IPCFrame.BindServiceReply.MethodInfo"> & {
    /**
     * @generated from field: optional uint32 id = 1;
     */
    id: number;
    /**
     * @generated from field: optional string name = 2;
     */
    name: string;
};
/**
 * Describes the message perfetto.protos.IPCFrame.BindServiceReply.MethodInfo.
 * Use `create(IPCFrame_BindServiceReply_MethodInfoSchema)` to create a new message.
 */
export declare const IPCFrame_BindServiceReply_MethodInfoSchema: GenMessage<IPCFrame_BindServiceReply_MethodInfo>;
/**
 * Client -> Host.
 *
 * @generated from message perfetto.protos.IPCFrame.InvokeMethod
 */
export type IPCFrame_InvokeMethod = Message<"perfetto.protos.IPCFrame.InvokeMethod"> & {
    /**
     * BindServiceReply.id.
     *
     * @generated from field: optional uint32 service_id = 1;
     */
    serviceId: number;
    /**
     * BindServiceReply.method.id.
     *
     * @generated from field: optional uint32 method_id = 2;
     */
    methodId: number;
    /**
     * Proto-encoded request argument.
     *
     * @generated from field: optional bytes args_proto = 3;
     */
    argsProto: Uint8Array;
    /**
     * When true the client specifies that a reply is not needed. The use case
     * is a method with an empty, where the client doesn't care about the
     * success/failure of the method invocation and rather prefers avoiding the
     * IPC roundtrip + context switch associated with the reply.
     *
     * @generated from field: optional bool drop_reply = 4;
     */
    dropReply: boolean;
};
/**
 * Describes the message perfetto.protos.IPCFrame.InvokeMethod.
 * Use `create(IPCFrame_InvokeMethodSchema)` to create a new message.
 */
export declare const IPCFrame_InvokeMethodSchema: GenMessage<IPCFrame_InvokeMethod>;
/**
 * Host -> Client.
 *
 * @generated from message perfetto.protos.IPCFrame.InvokeMethodReply
 */
export type IPCFrame_InvokeMethodReply = Message<"perfetto.protos.IPCFrame.InvokeMethodReply"> & {
    /**
     * @generated from field: optional bool success = 1;
     */
    success: boolean;
    /**
     * only for streaming RPCs.
     *
     * @generated from field: optional bool has_more = 2;
     */
    hasMore: boolean;
    /**
     * proto-encoded response value.
     *
     * @generated from field: optional bytes reply_proto = 3;
     */
    replyProto: Uint8Array;
};
/**
 * Describes the message perfetto.protos.IPCFrame.InvokeMethodReply.
 * Use `create(IPCFrame_InvokeMethodReplySchema)` to create a new message.
 */
export declare const IPCFrame_InvokeMethodReplySchema: GenMessage<IPCFrame_InvokeMethodReply>;
/**
 * Host -> Client.
 *
 * @generated from message perfetto.protos.IPCFrame.RequestError
 */
export type IPCFrame_RequestError = Message<"perfetto.protos.IPCFrame.RequestError"> & {
    /**
     * @generated from field: optional string error = 1;
     */
    error: string;
};
/**
 * Describes the message perfetto.protos.IPCFrame.RequestError.
 * Use `create(IPCFrame_RequestErrorSchema)` to create a new message.
 */
export declare const IPCFrame_RequestErrorSchema: GenMessage<IPCFrame_RequestError>;
/**
 * Client (relay service) -> Host. This is generated by the relay service to
 * fill the producer identity in the guest. This message is sent to the host
 * service *before* any IPCFrame is from a local producer is relayed. This is
 * accepted only on AF_VSOCK and AF_INET sockets, where we cannot validate the
 * endpoont of the connection. for AF_UNIX sockets, this is ignored and traced
 * uses instead the SO_PEERCRED.
 *
 * @generated from message perfetto.protos.IPCFrame.SetPeerIdentity
 */
export type IPCFrame_SetPeerIdentity = Message<"perfetto.protos.IPCFrame.SetPeerIdentity"> & {
    /**
     * The UID and PID of the producer process.
     *
     * @generated from field: optional int32 pid = 1;
     */
    pid: number;
    /**
     * @generated from field: optional int32 uid = 2;
     */
    uid: number;
    /**
     * The hint for the tracing service to infer the machine ID. This field
     * should satisfy the requriement that different machines should have
     * different values. In practice, this filed contains the Linux kernel
     * boot_id, or a hash of kernel bootup timestamp and uname(2) if boot_id
     * isn't available.
     *
     * @generated from field: optional string machine_id_hint = 3;
     */
    machineIdHint: string;
};
/**
 * Describes the message perfetto.protos.IPCFrame.SetPeerIdentity.
 * Use `create(IPCFrame_SetPeerIdentitySchema)` to create a new message.
 */
export declare const IPCFrame_SetPeerIdentitySchema: GenMessage<IPCFrame_SetPeerIdentity>;
//# sourceMappingURL=wire_protocol_pb.d.ts.map