export interface ConsumeContextOptions { mapContext?: (context: TContext, parent: HTMLElement, element: HTMLElement) => TResult; onMissing?: (element: HTMLElement) => void; } export interface ProvideToChildrenOptions { eventName: string; getChildSelector: (parentElement: HTMLElement) => string; getDetail: (context: TContext, child: Element) => TDetail; shouldDispatch?: (child: Element, parentElement: HTMLElement) => boolean; } export declare function storeContext(element: HTMLElement, key: string, context: TContext): void; export declare function consumeContext(element: HTMLElement, key: string, options?: ConsumeContextOptions): TResult; export declare function dispatchContextUpdate(element: Element, eventName: string, detail: TDetail): void; export declare function provideContextToChildren(element: HTMLElement, key: string, context: TContext, options: ProvideToChildrenOptions): void;