import { SetLocalizationResponse, NavigateRouteResponse, NavigateToResponse, NavigateToAnchorResponse, NavigationFeedbackResponse, GetLocalizationStateResponse, ClearGraphResponse, DownloadGraphResponse, UploadGraphResponse, UploadWaypointSnapshotResponse, UploadEdgeSnapshotResponse, DownloadWaypointSnapshotResponse, DownloadEdgeSnapshotResponse, SetLocalizationRequest, NavigateRouteRequest, NavigateToRequest, NavigateToAnchorRequest, NavigationFeedbackRequest, GetLocalizationStateRequest, ClearGraphRequest, DownloadGraphRequest, UploadGraphRequest, DownloadWaypointSnapshotRequest, DownloadEdgeSnapshotRequest, UploadWaypointSnapshotRequest, UploadEdgeSnapshotRequest } from "./graph_nav";
import { Observable } from "rxjs";
export declare const protobufPackage = "bosdyn.api.graph_nav";
/**
 * The GraphNav service service is a place-based localization and locomotion service. The service can
 * be used to get/set the localization, upload and download the current graph nav maps, and send navigation
 * requests to move around the map.
 */
export interface GraphNavService {
    /** Trigger a manual localization. Typically done to provide the initial localization. */
    SetLocalization(request: SetLocalizationRequest): Promise<SetLocalizationResponse>;
    /** Tell GraphNav to navigate/traverse a given route. */
    NavigateRoute(request: NavigateRouteRequest): Promise<NavigateRouteResponse>;
    /** Tell GraphNav to navigate to a waypoint along a route it chooses. */
    NavigateTo(request: NavigateToRequest): Promise<NavigateToResponse>;
    /** Tell GraphNav to navigate to a goal with respect to the current anchoring. */
    NavigateToAnchor(request: NavigateToAnchorRequest): Promise<NavigateToAnchorResponse>;
    /** Get feedback on active navigation command. */
    NavigationFeedback(request: NavigationFeedbackRequest): Promise<NavigationFeedbackResponse>;
    /** Get the localization status and data. */
    GetLocalizationState(request: GetLocalizationStateRequest): Promise<GetLocalizationStateResponse>;
    /** Clears the local graph structure. Also erases any snapshots currently in RAM. */
    ClearGraph(request: ClearGraphRequest): Promise<ClearGraphResponse>;
    /** Download the graph structure. */
    DownloadGraph(request: DownloadGraphRequest): Promise<DownloadGraphResponse>;
    /** Upload the full list of waypoint IDs, graph topology and other small info. */
    UploadGraph(request: UploadGraphRequest): Promise<UploadGraphResponse>;
    /** Uploads large waypoint snapshot as a stream for a particular waypoint. */
    UploadWaypointSnapshot(request: Observable<UploadWaypointSnapshotRequest>): Promise<UploadWaypointSnapshotResponse>;
    /** Uploads large edge snapshot as a stream for a particular edge. */
    UploadEdgeSnapshot(request: Observable<UploadEdgeSnapshotRequest>): Promise<UploadEdgeSnapshotResponse>;
    /** Download waypoint data from the server. If the snapshot exists in disk cache, it will be loaded. */
    DownloadWaypointSnapshot(request: DownloadWaypointSnapshotRequest): Observable<DownloadWaypointSnapshotResponse>;
    /** Download edge data from the server. If the snapshot exists in disk cache, it will be loaded. */
    DownloadEdgeSnapshot(request: DownloadEdgeSnapshotRequest): Observable<DownloadEdgeSnapshotResponse>;
}
export declare class GraphNavServiceClientImpl implements GraphNavService {
    private readonly rpc;
    constructor(rpc: Rpc);
    SetLocalization(request: SetLocalizationRequest): Promise<SetLocalizationResponse>;
    NavigateRoute(request: NavigateRouteRequest): Promise<NavigateRouteResponse>;
    NavigateTo(request: NavigateToRequest): Promise<NavigateToResponse>;
    NavigateToAnchor(request: NavigateToAnchorRequest): Promise<NavigateToAnchorResponse>;
    NavigationFeedback(request: NavigationFeedbackRequest): Promise<NavigationFeedbackResponse>;
    GetLocalizationState(request: GetLocalizationStateRequest): Promise<GetLocalizationStateResponse>;
    ClearGraph(request: ClearGraphRequest): Promise<ClearGraphResponse>;
    DownloadGraph(request: DownloadGraphRequest): Promise<DownloadGraphResponse>;
    UploadGraph(request: UploadGraphRequest): Promise<UploadGraphResponse>;
    UploadWaypointSnapshot(request: Observable<UploadWaypointSnapshotRequest>): Promise<UploadWaypointSnapshotResponse>;
    UploadEdgeSnapshot(request: Observable<UploadEdgeSnapshotRequest>): Promise<UploadEdgeSnapshotResponse>;
    DownloadWaypointSnapshot(request: DownloadWaypointSnapshotRequest): Observable<DownloadWaypointSnapshotResponse>;
    DownloadEdgeSnapshot(request: DownloadEdgeSnapshotRequest): Observable<DownloadEdgeSnapshotResponse>;
}
interface Rpc {
    request(service: string, method: string, data: Uint8Array): Promise<Uint8Array>;
    clientStreamingRequest(service: string, method: string, data: Observable<Uint8Array>): Promise<Uint8Array>;
    serverStreamingRequest(service: string, method: string, data: Uint8Array): Observable<Uint8Array>;
    bidirectionalStreamingRequest(service: string, method: string, data: Observable<Uint8Array>): Observable<Uint8Array>;
}
export {};
//# sourceMappingURL=graph_nav_service.d.ts.map