import { AcquireLeaseResponse, TakeLeaseResponse, ReturnLeaseResponse, ListLeasesResponse, RetainLeaseResponse, AcquireLeaseRequest, TakeLeaseRequest, ReturnLeaseRequest, ListLeasesRequest, RetainLeaseRequest } from "./lease";
export declare const protobufPackage = "bosdyn.api";
/**
 * LeaseService provides Leases of shared resources to clients.
 * An example of a shared resource is the set of leg motors on Spot, which
 * has the resource name of "body".
 * Clients can delegate out the Leases they receive from the LeaseService
 * to additional clients or services by generating sub-leases.
 * Leases obtained from the LeaseService may be revoked if the Lease holder
 * does not check in frequently to the LeaseService, or if another client
 * force-acquires a Lease.
 */
export interface LeaseService {
    /** Acquire a lease to a specific resource if the resource is available. */
    AcquireLease(request: AcquireLeaseRequest): Promise<AcquireLeaseResponse>;
    /** Take a lease for a specific resource even if another client has a lease. */
    TakeLease(request: TakeLeaseRequest): Promise<TakeLeaseResponse>;
    /** Return a lease to the LeaseService. */
    ReturnLease(request: ReturnLeaseRequest): Promise<ReturnLeaseResponse>;
    /** List state of all leases managed by the LeaseService. */
    ListLeases(request: ListLeasesRequest): Promise<ListLeasesResponse>;
    /** Retain possession of a lease. */
    RetainLease(request: RetainLeaseRequest): Promise<RetainLeaseResponse>;
}
export declare class LeaseServiceClientImpl implements LeaseService {
    private readonly rpc;
    constructor(rpc: Rpc);
    AcquireLease(request: AcquireLeaseRequest): Promise<AcquireLeaseResponse>;
    TakeLease(request: TakeLeaseRequest): Promise<TakeLeaseResponse>;
    ReturnLease(request: ReturnLeaseRequest): Promise<ReturnLeaseResponse>;
    ListLeases(request: ListLeasesRequest): Promise<ListLeasesResponse>;
    RetainLease(request: RetainLeaseRequest): Promise<RetainLeaseResponse>;
}
interface Rpc {
    request(service: string, method: string, data: Uint8Array): Promise<Uint8Array>;
}
export {};
//# sourceMappingURL=lease_service.d.ts.map