/**
  Juju RaftLease version 1.
  This facade is available on:
    Controller-machine-agent
    Machine-agent
    Unit-agent
    Models

  NOTE: This file was generated using the Juju schema
  from Juju 3.0-beta1 at the git SHA 61c87ab7e1.
  Do not manually edit this file.
*/
import { ConnectionInfo, Transport } from "../../client.js";
import { Facade } from "../../types.js";
export interface Error {
    code: string;
    info?: AdditionalProperties;
    message: string;
}
export interface ErrorResult {
    error?: Error;
}
export interface ErrorResults {
    results: ErrorResult[];
}
export interface LeaseOperation {
    command: string;
}
export interface LeaseOperations {
    commands: LeaseOperation[];
}
export interface AdditionalProperties {
    [key: string]: any;
}
/**
  Facade allows for modification of the underlying raft instance from a
  controller facade.
*/
declare class RaftLeaseV1 implements Facade {
    static NAME: string;
    static VERSION: number;
    NAME: string;
    VERSION: number;
    _transport: Transport;
    _info: ConnectionInfo;
    constructor(transport: Transport, info: ConnectionInfo);
    /**
      ApplyLease is a bulk API to allow applying lease operations to a raft
      context. If the current controller is not the leader, then a NotLeaderError
      is returned. Information about where they can locate the leader maybe
      supplied in the error message, but isn't guaranteed.
      If no information is supplied, it is expected that the client performs their
      own algorithm to locate the leader (roundrobin or listen to the apidetails
      topic).
    */
    applyLease(params: LeaseOperations): Promise<ErrorResults>;
}
export default RaftLeaseV1;
