import type { interfaces } from '../common/inversify-lite';
import type { IContributionProvider } from '../interface';
export declare const ContributionProvider: unique symbol;
declare class ContributionProviderCache<T> implements IContributionProvider<T> {
    protected caches?: T[];
    protected serviceIdentifier: interfaces.ServiceIdentifier<T>;
    protected container: interfaces.Container;
    constructor(serviceIdentifier: interfaces.ServiceIdentifier<T>, container: interfaces.Container);
    getContributions(): T[];
    refresh(): void;
}
export declare function bindContributionProvider(bind: interfaces.Bind, id: any): void;
export declare function bindContributionProviderNoSingletonScope(bind: interfaces.Bind, id: any): void;
export declare class ContributionStore {
    static store: Map<interfaces.ServiceIdentifier<any>, ContributionProviderCache<any>>;
    static getStore(id: interfaces.ServiceIdentifier<any>): ContributionProviderCache<any>;
    static setStore(id: interfaces.ServiceIdentifier<any>, cache: ContributionProviderCache<any>): void;
    static refreshAllContributions(): void;
}
export {};
