@difizen/mana-syringe
Version:
12 lines • 752 B
TypeScript
import type { Newable } from '@difizen/mana-common';
import type { Contribution } from '../contribution/index';
import { Syringe } from '../core';
export interface PrioritizedContribution<O = any, T = any> {
canHandle: (option: O) => number;
handle: (option: O) => T;
}
export declare class PrioritizedContributionManager<O = any, T extends PrioritizedContribution<O> = PrioritizedContribution> {
protected findContribution(option: O, provider: Contribution.Provider<T>): T;
}
export declare const prioritizedContributionFactory: <O = any, T = any>() => (token: Syringe.Token<PrioritizedContribution<O, T>>, contribution: PrioritizedContribution<O, T>) => (target: Newable<T>) => void;
//# sourceMappingURL=prioritized-contribution.d.ts.map