import { Observable } from 'rxjs';
import { Evaluated, IContributions, IContributableViewContainer, IViewService, IViewContexts } from '@adminide-stack/extension-api';
import { ErrorLike, IView } from '@adminide-stack/extension-api';
/**
 * Creates a new {@link IViewService}.
 */
export declare const createViewService: () => IViewService;
/**
 * Returns an observable of the view and its associated contents, `undefined` if loading, and `null`
 * if not found. The view must be both registered as a contribution and at runtime with the
 * {@link IViewService}.
 */
export declare const getView: <W extends IContributableViewContainer>(viewID: string, viewContainer: W, parameters: IViewContexts[W], contributions: Observable<Pick<Evaluated<IContributions>, 'views'>>, viewService: Pick<IViewService, 'get'>) => Observable<IView | undefined | null>;
export interface ViewProviderResult {
    /** The ID fo the view provider. */
    id: string;
    /** The result returned by the provider. */
    view: IView | undefined | ErrorLike;
}
export declare const getViewsForContainer: <W extends IContributableViewContainer>(where: W, parameters: IViewContexts[W], viewService: Pick<IViewService, 'getWhere'>) => Observable<ViewProviderResult[]>;
