import { type Signal } from "@qwik.dev/core"; /** * Props that support both value based and signal based state */ export type BindableProps = { [K in keyof T]?: T[K]; } & { [K in keyof T as `bind:${string & K}`]?: Signal; }; /** * Signals returned by useBindings with Sig suffix * * @example * If T is { value: string, disabled: boolean } * Then SignalResults is { valueSig: Signal, disabledSig: Signal } */ export type SignalResults = { [K in keyof T as `${string & K}Sig`]: Signal; }; /** * Creates synchronized signals that support both signal based state and resolved value state * * @param props Component props * @param initialValues * @returns Object with signals for each property (with Sig suffix) */ export declare function useBindings(props: BindableProps, initialValues: T): SignalResults; /** * IF NOT USING RENDER COMPONENT: * * Removes keys and their `bind:` versions (e.g., `value` and `bind:value`) from the given props object. * Useful in headless or higher-order components to prevent forwarding value/signal props to DOM elements. * * @param props The original component props. * @param initialValues The same object passed to useBindings - keys are automatically extracted. * @returns New props without those keys. */ export declare function destructureBindings>(props: Props, initialValues: T): Omit;