/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { IncomingMessage } from 'http';
import { Readable, Writable } from 'stream';
import { ZlibOptions } from 'zlib';
import { InstanceOptions, RequestTracingConfig } from '../../HttpClient';
import { AppFilesList, AppManifest, AppState } from '../../responses';
import { IOContext } from '../../service/worker/runtime/typings';
import { InfraClient } from './InfraClient';
export declare class Registry extends InfraClient {
    constructor(context: IOContext, options?: InstanceOptions);
    getAppState: (app: string, version: string, tracingConfig?: RequestTracingConfig) => Promise<AppState>;
    publishApp: (files: File[], tag?: string, { zlib }?: ZipOptions, tracingConfig?: RequestTracingConfig) => Promise<import("../../responses").AppBundleResponse & {
        bundleSize?: number | undefined;
    }>;
    publishAppRc: (files: File[], tag?: string, { zlib }?: ZipOptions, tracingConfig?: RequestTracingConfig) => Promise<import("../../responses").AppBundleResponse & {
        bundleSize?: number | undefined;
    }>;
    listApps: (tracingConfig?: RequestTracingConfig) => Promise<RegistryAppsList>;
    listVersionsByApp: (app: string, tracingConfig?: RequestTracingConfig) => Promise<RegistryAppVersionsList>;
    deprecateApp: (app: string, version: string, tracingConfig?: RequestTracingConfig) => Promise<void>;
    undeprecateApp: (app: string, version: string, tracingConfig?: RequestTracingConfig) => Promise<void>;
    validateApp: (app: string, version: string, tracingConfig?: RequestTracingConfig) => Promise<void>;
    getAppManifest: (app: string, version: string, opts?: AppsManifestOptions, tracingConfig?: RequestTracingConfig) => Promise<AppManifest>;
    listAppFiles: (app: string, version: string, opts?: ListAppFilesOptions, tracingConfig?: RequestTracingConfig) => Promise<AppFilesList>;
    getAppFile: (app: string, version: string, path: string, tracingConfig?: RequestTracingConfig) => Promise<{
        data: Buffer;
        headers: any;
    }>;
    getAppJSON: <T extends object | null>(app: string, version: string, path: string, nullIfNotFound?: boolean, tracingConfig?: RequestTracingConfig) => Promise<T>;
    getAppFileStream: (app: string, version: string, path: string, tracingConfig?: RequestTracingConfig) => Promise<IncomingMessage>;
    getAppBundle: (app: string, version: string, bundlePath: string, generatePackageJson: boolean, tracingConfig?: RequestTracingConfig) => Promise<Readable>;
    unpackAppBundle: (app: string, version: string, bundlePath: string, unpackPath: string, generatePackageJson: boolean, tracingConfig?: RequestTracingConfig) => Promise<Writable>;
    resolveDependenciesWithManifest: (manifest: AppManifest, filter?: string, tracingConfig?: RequestTracingConfig) => Promise<Record<string, string[]>>;
    private publish;
}
interface ZipOptions {
    zlib?: ZlibOptions;
}
export interface AppsManifestOptions {
    resolveDeps: boolean;
}
export interface ListAppFilesOptions {
    prefix: string;
}
export interface RegistryAppsListItem {
    partialIdentifier: string;
    location: string;
}
export interface RegistryAppsList {
    data: RegistryAppsListItem[];
}
export interface RegistryAppVersionsListItem {
    versionIdentifier: string;
    location: string;
}
export interface RegistryAppVersionsList {
    data: RegistryAppVersionsListItem[];
}
export interface File {
    path: string;
    content: any;
}
export {};
