import { RegisterEstopEndpointResponse, DeregisterEstopEndpointResponse, EstopCheckInResponse, GetEstopConfigResponse, SetEstopConfigResponse, GetEstopSystemStatusResponse, RegisterEstopEndpointRequest, DeregisterEstopEndpointRequest, EstopCheckInRequest, GetEstopConfigRequest, SetEstopConfigRequest, GetEstopSystemStatusRequest } from "./estop";
export declare const protobufPackage = "bosdyn.api";
/**
 * The software robot E-Stop system:
 *  1. Uses challenge-style communication to enforce end user (aka "originators") connection
 *     for Authority to Operate (ATO).
 *  2. Offers the ability to issue a direct denial of  ATO.
 * The EstopService provides a service interface for the robot EStop/Authority to operate the system.
 */
export interface EstopService {
    /**
     * Register an Estop "originator" or "endpoint".
     * This may be a replacement for another active endpoint.
     */
    RegisterEstopEndpoint(request: RegisterEstopEndpointRequest): Promise<RegisterEstopEndpointResponse>;
    /** Deregister the requested estop endpoint. */
    DeregisterEstopEndpoint(request: DeregisterEstopEndpointRequest): Promise<DeregisterEstopEndpointResponse>;
    /**
     * Answer challenge from previous response (unless this is the first call), and request
     * a stop level.
     */
    EstopCheckIn(request: EstopCheckInRequest): Promise<EstopCheckInResponse>;
    /** Request the current EstopConfig, describing the expected set of endpoints. */
    GetEstopConfig(request: GetEstopConfigRequest): Promise<GetEstopConfigResponse>;
    /** Set a new active EstopConfig. */
    SetEstopConfig(request: SetEstopConfigRequest): Promise<SetEstopConfigResponse>;
    /** Ask for the current status of the estop system. */
    GetEstopSystemStatus(request: GetEstopSystemStatusRequest): Promise<GetEstopSystemStatusResponse>;
}
export declare class EstopServiceClientImpl implements EstopService {
    private readonly rpc;
    constructor(rpc: Rpc);
    RegisterEstopEndpoint(request: RegisterEstopEndpointRequest): Promise<RegisterEstopEndpointResponse>;
    DeregisterEstopEndpoint(request: DeregisterEstopEndpointRequest): Promise<DeregisterEstopEndpointResponse>;
    EstopCheckIn(request: EstopCheckInRequest): Promise<EstopCheckInResponse>;
    GetEstopConfig(request: GetEstopConfigRequest): Promise<GetEstopConfigResponse>;
    SetEstopConfig(request: SetEstopConfigRequest): Promise<SetEstopConfigResponse>;
    GetEstopSystemStatus(request: GetEstopSystemStatusRequest): Promise<GetEstopSystemStatusResponse>;
}
interface Rpc {
    request(service: string, method: string, data: Uint8Array): Promise<Uint8Array>;
}
export {};
//# sourceMappingURL=estop_service.d.ts.map