import type { ComputedSignal, Signal } from "@qwik.dev/core"; type SignalFields = { [K in keyof T]: T[K] extends Signal ? K : never; }[keyof T]; type UnwrapSignal = T extends Signal ? V : T; /** * Creates a type-safe getter factory for exposing component context state to consumers. * * Qwik's context system requires `useContext()` inside a `component$()` that is a * descendant of the provider. Consumers can't read component state from the parent scope. * The QDS UI plugin (`qds()`) solves this by detecting `get`-prefixed namespace properties * in JSX and generating `component$()` wrappers at build time. * * This function creates proxy placeholders typed against the context. The plugin rewrites * all references before runtime — the proxy only triggers if the plugin is missing. * * @example * ```ts * // select/index.ts * const context = createContextProxy(); * * export const getIsOpen = context("isOpen"); * export const getSelectedValues = context("selectedValues"); * * // Consumer JSX — plugin transforms this into a generated component$(): * {select.getIsOpen.value ? "Open" : "Closed"} * ``` */ export declare function createContextProxy(): >(field: TField) => ComputedSignal>; export {};