@visactor/vrender-core
Version:
```typescript import { xxx } from '@visactor/vrender-core'; ```
29 lines (28 loc) • 1.66 kB
TypeScript
import type { IBindingResolver, ServiceIdentifier } from './explicit-binding';
import type { IContributionProvider } from '../interface';
export declare const ContributionProvider: unique symbol;
declare class ContributionProviderCache<T> implements IContributionProvider<T> {
protected caches?: T[];
protected serviceIdentifier: ServiceIdentifier<T>;
protected container: IBindingResolver & {
isBound: (serviceIdentifier: ServiceIdentifier<T>) => boolean;
};
constructor(serviceIdentifier: ServiceIdentifier<T>, container: IBindingResolver & {
isBound: (serviceIdentifier: ServiceIdentifier<T>) => boolean;
});
getContributions(): T[];
refresh(): void;
}
export declare function createContributionProvider<T>(serviceIdentifier: ServiceIdentifier<T>, container: IBindingResolver & {
isBound: (serviceIdentifier: ServiceIdentifier<T>) => boolean;
}): IContributionProvider<T>;
export declare function bindContributionProvider(bind: any, id: ServiceIdentifier): void;
export declare function bindContributionProviderNoSingletonScope(bind: any, id: ServiceIdentifier): void;
export declare class ContributionStore {
static store: Map<ServiceIdentifier<any>, Set<ContributionProviderCache<any>>>;
static getStore(id: ServiceIdentifier<any>): ContributionProviderCache<any> | undefined;
static setStore(id: ServiceIdentifier<any>, cache: ContributionProviderCache<any>): void;
static refreshAllContributions(): void;
}
export { CONTRIBUTION_STORE_STATE_SYMBOL, getContributionStoreState } from './contribution-store-state';
export type { IContributionStoreState } from './contribution-store-state';