///
import { KubeConfig } from './config';
import { KubernetesListObject, KubernetesObject } from './types';
import http = require('http');
export declare type ObjectCallback = (obj: T) => void;
export declare type ErrorCallback = (err?: any) => void;
export declare type ListCallback = (list: T[], ResourceVersion: string) => void;
export declare type ListPromise = () => Promise<{
response: http.IncomingMessage;
body: KubernetesListObject;
}>;
export declare const ADD: string;
export declare const UPDATE: string;
export declare const CHANGE: string;
export declare const DELETE: string;
export declare const CONNECT: string;
export declare const ERROR: string;
export interface Informer {
on(verb: string, fn: ObjectCallback): void;
off(verb: string, fn: ObjectCallback): void;
start(): Promise;
stop(): Promise;
}
export declare function makeInformer(kubeconfig: KubeConfig, path: string, listPromiseFn: ListPromise, labelSelector?: string): Informer;