///
import { KubeObject, KubeDocument, KubeObjectAddress } from '../kubeObject';
import { Result } from '../result';
import { Processor } from '../processor';
import { Version } from './version';
import { listOptions, putOptions } from './crud';
import { watchCallback, watchDone } from '../request';
import { Readable, Writable } from 'stream';
export interface Cluster {
}
declare module './' {
interface Cluster {
begin(stageName?: string): Processor;
processor: Processor;
info: Version;
list(document: KubeDocument, options?: listOptions): Promise;
read(document: KubeDocument): Promise;
create(document: KubeDocument, owners?: Array): Promise;
put(document: KubeDocument, newDoc: KubeDocument, params?: putOptions): Promise;
patch(document: KubeDocument, patch: Partial): Promise;
delete(document: KubeDocument): Promise;
upsert(document: KubeDocument, owners?: Array): Promise;
toAddress(document: KubeDocument): Promise;
toString(document: KubeDocument): string;
watch(document: KubeDocument, callback: watchCallback, error: watchDone): Promise;
exec(document: KubeDocument, command: string | string[], stdout?: Writable, stderr?: Writable, stdin?: Readable): Promise;
portForward(containerPort: number, document: KubeDocument): Promise;
version(): Promise;
}
}