import type { Syringe } from '../core';
import type { Option, Provider } from './contribution-protocol';
export declare class DefaultContributionProvider<T extends Record<string, any>> implements Provider<T> {
    protected option: Option;
    protected services: T[] | undefined;
    protected readonly serviceIdentifier: Syringe.Token<T>;
    protected readonly container: Syringe.Container;
    constructor(serviceIdentifier: Syringe.Token<T>, container: Syringe.Container, option?: Option);
    protected setServices(recursive: boolean): T[];
    getContributions(option?: Option): T[];
}
