import { IKubernetesRESTClient, ListOptions, MandatorySelectorOptions, WatchOptions, WatchResult } from "./client"; import { APIObject, MetadataObject } from "./types/meta"; import { DeleteOptions, WatchEvent } from "./types/meta/v1"; import { WatchHandle } from "./watch"; import { Registry } from "prom-client"; import { JSONPatch, JSONPatchElement, RecursivePartial } from "./api_patch"; export interface IResourceClient { list(listOptions?: ListOptions): Promise & O>>; get(name: string): Promise<(APIObject & O) | undefined>; apply(resource: R): Promise & O>; put(resource: R): Promise & O>; post(resource: R): Promise & O>; patchStrategic(resourceOrName: R | string, patch: RecursivePartial): Promise & O>; patchMerge(resourceOrName: R | string, patch: RecursivePartial): Promise & O>; patchJSON(resourceOrName: R | string, patch: JSONPatch): Promise; delete(resourceOrName: R | string, deleteOptions?: DeleteOptions): Promise; deleteMany(opts: MandatorySelectorOptions & DeleteOptions): Promise; watch(handler: (event: WatchEvent) => any, errorHandler?: (error: any) => any, opts?: WatchOptions): Promise; listWatch(handler: (event: WatchEvent) => any, errorHandler?: (error: any) => any, opts?: WatchOptions): WatchHandle; } export interface INamespacedResourceClient extends IResourceClient { namespace(ns: string): INamespacedResourceClient; allNamespaces(): INamespacedResourceClient; } export declare class CustomResourceClient implements INamespacedResourceClient { private inner; private kind; private apiVersion; constructor(inner: INamespacedResourceClient, kind: K, apiVersion: V); list(listOptions?: ListOptions): Promise & O>>; get(name: string): Promise<(APIObject & O) | undefined>; apply(resource: R): Promise & O>; put(resource: R): Promise & O>; post(resource: R): Promise & O>; delete(resourceOrName: string | R, deleteOptions?: DeleteOptions): Promise; deleteMany(opts: MandatorySelectorOptions & DeleteOptions): Promise; watch(handler: (event: WatchEvent) => any, errorHandler?: (error: any) => any, opts?: WatchOptions): Promise; listWatch(handler: (event: WatchEvent) => any, errorHandler?: (error: any) => any, opts?: WatchOptions): WatchHandle; patchJSON(resourceOrName: string | R, patch: JSONPatchElement[]): Promise; patchStrategic(resourceOrName: string | R, patch: RecursivePartial): Promise & O>; patchMerge(resourceOrName: string | R, patch: RecursivePartial): Promise & O>; namespace(ns: string): INamespacedResourceClient; allNamespaces(): INamespacedResourceClient; } export declare class ResourceClient implements IResourceClient { protected client: IKubernetesRESTClient; protected apiBaseURL: string; protected resourceBaseURL: string; private static watchResyncErrorCount; private static watchOpenCount; protected baseURL: string; supportsCollectionDeletion: boolean; constructor(client: IKubernetesRESTClient, apiBaseURL: string, resourceBaseURL: string, registry: Registry); protected urlForResource(r: R): string; protected urlForResourceOrName(r: R | string): string; list(opts?: ListOptions): Promise & O>>; get(name: string): Promise<(APIObject & O) | undefined>; watch(handler: (event: WatchEvent) => any, errorHandler?: (error: any) => any, opts?: WatchOptions): Promise; listWatch(handler: (event: WatchEvent) => any, errorHandler?: (error: any) => any, opts?: WatchOptions): WatchHandle; apply(resource: R): Promise & O>; put(resource: R): Promise & O>; post(resource: R): Promise & O>; patchStrategic(resourceOrName: R | string, patch: RecursivePartial): Promise & O>; patchMerge(resourceOrName: R | string, patch: RecursivePartial): Promise & O>; patchJSON(resourceOrName: R | string, patch: JSONPatch): Promise & O>; delete(resourceOrName: R | string, deleteOptions?: DeleteOptions): Promise; deleteMany(opts: MandatorySelectorOptions & DeleteOptions): Promise; } export declare class NamespacedResourceClient extends ResourceClient implements INamespacedResourceClient { private registry; private ns?; constructor(client: IKubernetesRESTClient, apiBaseURL: string, resourceBaseURL: string, registry: Registry, ns?: string); protected urlForResource(r: R): string; namespace(ns: string): INamespacedResourceClient; allNamespaces(): INamespacedResourceClient; post(resource: R): Promise; }