/**
  Juju ImageMetadataManager 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.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 CloudImageMetadata {
    arch: string;
    "image-id": string;
    priority: number;
    region: string;
    "root-storage-size"?: number;
    "root-storage-type"?: string;
    source: string;
    stream?: string;
    version: string;
    "virt-type"?: string;
}
export interface CloudImageMetadataList {
    metadata?: CloudImageMetadata[];
}
export interface Error {
    code: string;
    info?: AdditionalProperties;
    message: string;
}
export interface ErrorResult {
    error?: Error;
}
export interface ErrorResults {
    results: ErrorResult[];
}
export interface ImageMetadataFilter {
    arches?: string[];
    region?: string;
    "root-storage-type"?: string;
    stream?: string;
    versions?: string[];
    "virt-type"?: string;
}
export interface ListCloudImageMetadataResult {
    result: CloudImageMetadata[];
}
export interface MetadataImageIds {
    "image-ids": string[];
}
export interface MetadataSaveParams {
    metadata?: CloudImageMetadataList[];
}
export interface AdditionalProperties {
    [key: string]: any;
}
/**
  API is the concrete implementation of the api end point
  for loud image metadata manipulations.
*/
declare class ImageMetadataManagerV1 implements Facade {
    static NAME: string;
    static VERSION: number;
    NAME: string;
    VERSION: number;
    _transport: Transport;
    _info: ConnectionInfo;
    constructor(transport: Transport, info: ConnectionInfo);
    /**
      Delete deletes cloud image metadata for given image ids.
      It supports bulk calls.
    */
    delete(params: MetadataImageIds): Promise<ErrorResults>;
    /**
      List returns all found cloud image metadata that satisfy
      given filter.
      Returned list contains metadata ordered by priority.
    */
    list(params: ImageMetadataFilter): Promise<ListCloudImageMetadataResult>;
    /**
      Save stores given cloud image metadata.
      It supports bulk calls.
    */
    save(params: MetadataSaveParams): Promise<ErrorResults>;
}
export default ImageMetadataManagerV1;
