export type KeysMatching = { [K in keyof T]-?: T[K] extends V ? K : never; }[keyof T]; export type RemoveNulls = Omit>; /** * MergeProps will merge keys from `U` over `T` except when the value of `T` is `null`. * * ```ts * MergeProps< * {foo: string, bar: string, baz: null}, * {foo: string, bar: number, baz: string} * > // { foo: string, bar: number, baz: null } * ``` */ export type MergeProps = { [K in keyof T | keyof U]: K extends keyof T ? K extends keyof U ? T[K] extends null ? null : U[K] : T[K] : K extends keyof U ? U[K] : never; }; /** * Merges source props into target props, overwriting target props that are also defined on source * props. Callback will be merged in such a way that both callbacks will be called. `css` and * `style` props will be merged in such a way that source props have the final override. * * If `targetProps` has a `null` set, it will remove the prop from the `sourceProps`. This allows * passing of props from merged hooks to another without passing out to the final element props. */ export declare function mergeProps(targetProps: T, sourceProps: S): RemoveNulls>; //# sourceMappingURL=mergeProps.d.ts.map