import { AnyStore } from "../core/store.js"; import { Context } from "@videojs/element/context"; import { ReactiveController, ReactiveControllerHost } from "@videojs/element"; //#region src/html/store-accessor.d.ts type StoreSource = Store | Context; type StoreAccessorHost = ReactiveControllerHost & HTMLElement; /** * Resolves a store from either a direct instance or context. * * When given a direct store, provides immediate access. * When given a context, sets up a ContextConsumer to receive the store. * * @example Direct store * ```ts * const accessor = new StoreAccessor(host, store, (s) => console.log('available', s)); * accessor.value; // Store (immediately available) * ``` * * @example Context source * ```ts * const accessor = new StoreAccessor(host, context, (s) => console.log('available', s)); * accessor.value; // null until context provides store * ``` */ declare class StoreAccessor implements ReactiveController { #private; constructor(host: StoreAccessorHost, source: StoreSource, onAvailable?: (store: Store) => void); /** Returns the store, or null if not yet available from context. */ get value(): Store | null; hostConnected(): void; } //#endregion export { StoreAccessor, StoreAccessorHost, StoreSource }; //# sourceMappingURL=store-accessor.d.ts.map