import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/perfetto/ipc/relay_port.proto.
 */
export declare const file_protos_perfetto_ipc_relay_port: GenFile;
/**
 * For the client to send its clock readings to the host.
 *
 * @generated from message perfetto.protos.SyncClockRequest
 */
export type SyncClockRequest = Message<"perfetto.protos.SyncClockRequest"> & {
    /**
     * @generated from field: optional perfetto.protos.SyncClockRequest.Phase phase = 1;
     */
    phase: SyncClockRequest_Phase;
    /**
     * @generated from field: repeated perfetto.protos.SyncClockRequest.Clock clocks = 2;
     */
    clocks: SyncClockRequest_Clock[];
};
/**
 * Describes the message perfetto.protos.SyncClockRequest.
 * Use `create(SyncClockRequestSchema)` to create a new message.
 */
export declare const SyncClockRequestSchema: GenMessage<SyncClockRequest>;
/**
 * @generated from message perfetto.protos.SyncClockRequest.Clock
 */
export type SyncClockRequest_Clock = Message<"perfetto.protos.SyncClockRequest.Clock"> & {
    /**
     * The clock ID enumerated in builtin_clocks.proto.
     *
     * @generated from field: optional uint32 clock_id = 1;
     */
    clockId: number;
    /**
     * The clock reading value (e.g. in nanoseconds for BUILTIN_CLOCK_BOOTTIME).
     *
     * @generated from field: optional uint64 timestamp = 2;
     */
    timestamp: bigint;
};
/**
 * Describes the message perfetto.protos.SyncClockRequest.Clock.
 * Use `create(SyncClockRequest_ClockSchema)` to create a new message.
 */
export declare const SyncClockRequest_ClockSchema: GenMessage<SyncClockRequest_Clock>;
/**
 * Relay service synchronizes its clocks with the host using round-trip
 * messages of clock snapshots on both sides for an estimation of clock
 * offsets of the built-in clocks.
 *
 * @generated from enum perfetto.protos.SyncClockRequest.Phase
 */
export declare enum SyncClockRequest_Phase {
    /**
     * Clock synchronization starts with the client (relay service) sends its
     * clock snapshots in the PING phase. The host also snapshots its clocks on
     * receiving the request and acks the client.
     *
     * @generated from enum value: PING = 1;
     */
    PING = 1,
    /**
     * Clock synchronization completes with the client sending the second clock
     * snapshot request after the round-trip of the PING request. The host
     * estimates the clock offsets using 2 consecutive clock snapshots on both
     * sides.
     *
     * @generated from enum value: UPDATE = 2;
     */
    UPDATE = 2
}
/**
 * Describes the enum perfetto.protos.SyncClockRequest.Phase.
 */
export declare const SyncClockRequest_PhaseSchema: GenEnum<SyncClockRequest_Phase>;
/**
 * The host doesn't send any information back to the client.
 *
 * @generated from message perfetto.protos.SyncClockResponse
 */
export type SyncClockResponse = Message<"perfetto.protos.SyncClockResponse"> & {};
/**
 * Describes the message perfetto.protos.SyncClockResponse.
 * Use `create(SyncClockResponseSchema)` to create a new message.
 */
export declare const SyncClockResponseSchema: GenMessage<SyncClockResponse>;
/**
 * IPC interface definition for serving the requests from the relay service.
 *
 * @generated from service perfetto.protos.RelayPort
 */
export declare const RelayPort: GenService<{
    /**
     * Synchronize the clocks with a guest. This is used for multi-machine tracing
     * with a VM guest or a remote machine. The client may make consecutive calls
     * of this method to get better results.
     *
     * @generated from rpc perfetto.protos.RelayPort.SyncClock
     */
    syncClock: {
        methodKind: "unary";
        input: typeof SyncClockRequestSchema;
        output: typeof SyncClockResponseSchema;
    };
}>;
//# sourceMappingURL=relay_port_pb.d.ts.map