nexwidget
Version:
An ESNext Web Component library.
36 lines (35 loc) • 1.24 kB
TypeScript
import { Constructor, Nexwidget } from '../nexwidget.js';
export interface NexwidgetDependencyKeyMap {}
declare type DependencyRequestEventDetails<
K extends keyof NexwidgetDependencyKeyMap,
> = {
readonly key: K;
value?: NexwidgetDependencyKeyMap[K];
};
declare type DependencyRequestEvent<K extends keyof NexwidgetDependencyKeyMap> =
CustomEvent<DependencyRequestEventDetails<K>>;
declare global {
interface HTMLElementEventMap {
'dependency-request': DependencyRequestEvent<
keyof NexwidgetDependencyKeyMap
>;
}
}
export declare class WithDependencyConsumerInterface {
requestDependency<K extends keyof NexwidgetDependencyKeyMap>(
key: K,
): NexwidgetDependencyKeyMap[K];
}
export declare const WithDependencyConsumer: <T extends Constructor<Nexwidget>>(
Base: T,
) => Constructor<WithDependencyConsumerInterface> & T;
export declare class WithDependencyProviderInterface {
provideDependency<K extends keyof NexwidgetDependencyKeyMap>(
key: K,
value: NexwidgetDependencyKeyMap[K],
): void;
}
export declare const WithDependencyProvider: <T extends Constructor<Nexwidget>>(
Base: T,
) => Constructor<WithDependencyProviderInterface> & T;
export {};