import { Observable, Subscription } from 'rxjs';
import { Entry, ContributableViewContainer, PanelViewProviderRegistrationOptions, ProvidePanelViewSignature, PanelViewWithComponent, IPanelViewProviderRegistry } from '@adminide-stack/extension-api';
import { FeatureProviderRegistry } from './registry';
/** Provides panel views from all extensions. */
export declare class PanelViewProviderRegistry extends FeatureProviderRegistry<PanelViewProviderRegistrationOptions, ProvidePanelViewSignature> implements IPanelViewProviderRegistry {
    /**
     * Returns an observable that emits the specified panel view whenever it or the set of
     * registered panel view providers changes. If the provider emits an error, the returned
     * observable also emits an error (and completes).
     */
    getPanelView(id: string): Observable<(PanelViewWithComponent & PanelViewProviderRegistrationOptions) | null>;
    /**
     * Returns an observable that emits all panel views whenever the set of registered panel view
     * providers or their properties change. If any provider emits an error, the error is logged and
     * the provider is omitted from the emission of the observable (the observable does not emit the
     * error).
     */
    getPanelViews(container: typeof ContributableViewContainer): Observable<(PanelViewWithComponent & PanelViewProviderRegistrationOptions)[]>;
    /** @sri custom change: deregister panel view provider */
    deregisterProvider(deregistrationOptions: PanelViewProviderRegistrationOptions): Subscription;
}
/**
 * Exported for testing only. Most callers should use {@link ViewProviderRegistry#getPanelView},
 * which uses the registered panel view providers.
 *
 * @internal
 */
export declare function getPanelView(entries: Observable<Entry<PanelViewProviderRegistrationOptions, Observable<PanelViewWithComponent | null>>[]>, id: string): Observable<(PanelViewWithComponent & PanelViewProviderRegistrationOptions) | null>;
/**
 * Exported for testing only. Most callers should use {@link ViewProviderRegistry#getPanelViews},
 * which uses the registered panel view providers.
 *
 * @internal
 */
export declare function getPanelViews(entries: Observable<Entry<PanelViewProviderRegistrationOptions, Observable<PanelViewWithComponent | null>>[]>, container: typeof ContributableViewContainer, logErrors?: boolean): Observable<(PanelViewWithComponent & PanelViewProviderRegistrationOptions)[]>;
