import { StartRecordingResponse, StopRecordingResponse, CreateWaypointResponse, SetRecordingEnvironmentResponse, CreateEdgeResponse, GetRecordStatusResponse, StartRecordingRequest, StopRecordingRequest, CreateWaypointRequest, SetRecordingEnvironmentRequest, CreateEdgeRequest, GetRecordStatusRequest } from "./recording";
export declare const protobufPackage = "bosdyn.api.graph_nav";
/**
 * The recording service can be used to record a Graph Nav map (containing waypoints and edges).
 * The recorded map can consist of the following:
 * * Chain: a topological arrangement of waypoints/edges where every waypoint has at least 1
 * but at most 2 edges attached to it.
 * * Branch: separate Chains can be joined together into a Branch at exactly one waypoint.
 * When recording a map using the recording service, a common pattern is:
 * * Call StartRecording to begin recording a chain of waypoints.
 * * Call SetRecordingEnvironment to define persistent annotations for the edges and waypoints.
 * * While recording, call GetRecordStatus to get feedback on the state of the recording service.
 * * While recording, call GetMapStatus to determine what waypoints have been created.
 * * Optionally call CreateWaypoint to create waypoints in specific locations.
 * * Call StopRecording to pause the recording service and create branches.
 * * While recording (or after completing recording), call DownloadWaypoint/Edge Snapshot rpc's
 * from the GraphNavService to download the large sensor data with the map.
 */
export interface GraphNavRecordingService {
    /**
     * Start recording the map from the current localization.
     * Creates a waypoint if you are starting to record. Otherwise, waits until you are
     * sufficiently far away from the previous waypoint.
     */
    StartRecording(request: StartRecordingRequest): Promise<StartRecordingResponse>;
    /** Stop recording the map from the current localization. */
    StopRecording(request: StopRecordingRequest): Promise<StopRecordingResponse>;
    /** Create a new waypoint at the current localization. */
    CreateWaypoint(request: CreateWaypointRequest): Promise<CreateWaypointResponse>;
    /** Set the environmnent and name prefix to use for the recording. */
    SetRecordingEnvironment(request: SetRecordingEnvironmentRequest): Promise<SetRecordingEnvironmentResponse>;
    /** Create an arbitrary edge between two waypoints. */
    CreateEdge(request: CreateEdgeRequest): Promise<CreateEdgeResponse>;
    /**
     * Tells the client the internal state of the record service, and the structure of the map that has been recorded
     * so far.
     */
    GetRecordStatus(request: GetRecordStatusRequest): Promise<GetRecordStatusResponse>;
}
export declare class GraphNavRecordingServiceClientImpl implements GraphNavRecordingService {
    private readonly rpc;
    constructor(rpc: Rpc);
    StartRecording(request: StartRecordingRequest): Promise<StartRecordingResponse>;
    StopRecording(request: StopRecordingRequest): Promise<StopRecordingResponse>;
    CreateWaypoint(request: CreateWaypointRequest): Promise<CreateWaypointResponse>;
    SetRecordingEnvironment(request: SetRecordingEnvironmentRequest): Promise<SetRecordingEnvironmentResponse>;
    CreateEdge(request: CreateEdgeRequest): Promise<CreateEdgeResponse>;
    GetRecordStatus(request: GetRecordStatusRequest): Promise<GetRecordStatusResponse>;
}
interface Rpc {
    request(service: string, method: string, data: Uint8Array): Promise<Uint8Array>;
}
export {};
//# sourceMappingURL=recording_service.d.ts.map