/**
  Juju SecretBackends version 1.
  This facade is available on:
    Controllers

  NOTE: This file was generated using the Juju schema
  from Juju 3.3 at the git SHA 65fa4c1ee5.
  Do not manually edit this file.
*/
import { ConnectionInfo, Transport } from "../../client.js";
import { Facade } from "../../types.js";
export interface AddSecretBackendArg {
    SecretBackend: SecretBackend;
    "backend-type": string;
    config: AdditionalProperties;
    id?: string;
    name: string;
    "token-rotate-interval"?: number;
}
export interface AddSecretBackendArgs {
    args: AddSecretBackendArg[];
}
export interface Error {
    code: string;
    info?: AdditionalProperties;
    message: string;
}
export interface ErrorResult {
    error?: Error;
}
export interface ErrorResults {
    results: ErrorResult[];
}
export interface ListSecretBackendsArgs {
    names: string[];
    reveal: boolean;
}
export interface ListSecretBackendsResults {
    results: SecretBackendResult[];
}
export interface RemoveSecretBackendArg {
    force?: boolean;
    name: string;
}
export interface RemoveSecretBackendArgs {
    args: RemoveSecretBackendArg[];
}
export interface SecretBackend {
    "backend-type": string;
    config: AdditionalProperties;
    name: string;
    "token-rotate-interval"?: number;
}
export interface SecretBackendResult {
    error?: Error;
    id: string;
    message?: string;
    "num-secrets": number;
    result: SecretBackend;
    status: string;
}
export interface UpdateSecretBackendArg {
    config: AdditionalProperties;
    force?: boolean;
    name: string;
    "name-change"?: string;
    reset: string[];
    "token-rotate-interval": number;
}
export interface UpdateSecretBackendArgs {
    args: UpdateSecretBackendArg[];
}
export interface AdditionalProperties {
    [key: string]: any;
}
/**
  SecretBackendsAPI is the server implementation for the SecretBackends facade.
*/
declare class SecretBackendsV1 implements Facade {
    static NAME: string;
    static VERSION: number;
    NAME: string;
    VERSION: number;
    _transport: Transport;
    _info: ConnectionInfo;
    constructor(transport: Transport, info: ConnectionInfo);
    /**
      AddSecretBackends adds new secret backends.
    */
    addSecretBackends(params: AddSecretBackendArgs): Promise<ErrorResults>;
    /**
      ListSecretBackends lists available secret backends.
    */
    listSecretBackends(params: ListSecretBackendsArgs): Promise<ListSecretBackendsResults>;
    /**
      RemoveSecretBackends removes secret backends.
    */
    removeSecretBackends(params: RemoveSecretBackendArgs): Promise<ErrorResults>;
    /**
      UpdateSecretBackends updates secret backends.
    */
    updateSecretBackends(params: UpdateSecretBackendArgs): Promise<ErrorResults>;
}
export default SecretBackendsV1;
