import { ObservableStore, Store } from "./store";
import { MetadataObject } from "../types/meta";
import { IResourceClient } from "../resource";
import { SelectorOptions } from "../client";
export interface Controller {
    waitForInitialList(): Promise<void>;
    waitUntilFinish(): Promise<void>;
    stop(): void;
}
export declare class Informer<TResource extends MetadataObject, TResourceOutput extends TResource = TResource> {
    private readonly resource;
    private readonly opts?;
    readonly store: ObservableStore<TResourceOutput>;
    constructor(resource: IResourceClient<TResource, any, any, TResourceOutput>, opts?: SelectorOptions, store?: Store<TResourceOutput>);
    start(): Controller;
}
