import { InputSignal, InputSignalWithTransform } from '@angular/core';
/**
 * Type design to convert a properties type to its equivalent for Angular signal inputs.
 *
 * Example :
 * ```ts
 * // For given type,
 * type MyType = {
 *   foo: string;
 *   bar: boolean;
 * };
 *
 * // this
 * type MySignalPropsType = InputSignalProps<MyType>;
 *
 * // is equivalent to :
 * type MySignalPropsType = {
 *   foo: InputSignal<string>;
 *   bar: InputSignalWithTransform<boolean, unknown>;
 * }
 * ```
 */
export type InputSignalProps<T extends object> = {
    [K in keyof T]: NonNullable<T[K]> extends boolean ? InputSignalWithTransform<NonNullable<T[K]>, unknown> : InputSignal<T[K]>;
};
