import * as API from "../../common/api"; import { CollectionDoc, Events, QueryParams, Resource, ResourceId, Scope, SingleDoc, State, Task } from "../../common/structures"; export declare function document(): typeof CollectionRequest; export declare function document(id: ResourceId): SingleRequest; export interface Collection extends CollectionDoc { data: Image[]; } export interface Single extends SingleDoc { data: Image | null; } export interface Image extends Resource { name: string; about: { description: string; }; source: SourceStructure; tags: string[]; size: number; config: ConfigStructure; state: State; events: Events; owner: Scope; creator: ResourceId; repo: ResourceId; meta?: { usage?: { containers: number; }; }; } export interface BuildLogResource extends Resource { image: ResourceId; owner: Scope; output: string; events: Events; } export interface BuildLog extends SingleDoc { data: BuildLogResource | null; } export declare type States = "new" | "claimed" | "downloading" | "building" | "verifying" | "saving" | "live" | "deleting" | "deleted" | "error"; export interface SourceStructure { flavor: string; type: string; target: string; repo: string; tag: string; } export interface ConfigStructure { hostname: string; user: string; env: { [key: string]: string; }; labels: { [key: string]: string; }; ports: ConfigPortStructure[]; command: string[]; entrypoint: string[]; volumes: ConfigVolumeStructure[]; } export interface ConfigPortStructure { type: string; number: number; } export interface ConfigVolumeStructure { path: string; mode: number; } export interface DockerHubImportParams { name: string; about?: { description: string; }; repo: string; tag: string; auth?: { require: boolean; username: string; password: string; server: string; }; } export interface UpdateParams { name?: string; about?: { description: string; }; } export declare class DockerHub { import(doc: DockerHubImportParams, query?: QueryParams): Promise>; } export declare type CollectionActions = "cleanup"; export declare class CollectionRequest { static dockerhub: DockerHub; private static target; static get(query?: QueryParams): Promise>; static deleteUnused(): Promise>>; } export declare type SingleActions = "build" | "delete"; export declare class SingleRequest { private target; constructor(id: ResourceId); get(query?: QueryParams): Promise>; update(doc: UpdateParams, query?: QueryParams): Promise>; delete(query?: QueryParams): Promise>>; build(): Promise>>; log(query?: QueryParams): Promise>; task(action: SingleActions, contents?: object): Promise>>; }