import type { Event } from '@difizen/mana-common';
import { Syringe } from '../core';
export type Option = {
    /**
     * collected from the parent containers
     */
    recursive?: boolean;
    /**
     * use cache
     */
    cache?: boolean;
};
export type Provider<T extends Record<string, any>> = {
    getContributions: (option?: Option) => T[];
    onChanged: Event<void>;
};
export declare const Provider: Syringe.DefinedToken;
declare class ContributionOptionConfigImpl {
    recursive: boolean;
    cache: boolean;
}
export declare const ContributionOptionConfig: ContributionOptionConfigImpl;
export {};
//# sourceMappingURL=contribution-protocol.d.ts.map