import { Listener } from "./pipe"; import { ReactiveVariable } from "./ReactiveVariable"; export declare function extendClassProps(classProto: Object, createDefaultProps: () => T): void; export type ExtractNativeTypeFromReactiveProp = T extends ReactiveVariable ? R : T; export type ExtractNativeTypeToReactiveProp = T extends ReactiveVariable ? T : ReactiveVariable; export type ReactivePropsToNativeProps = { [Property in keyof T]: ExtractNativeTypeFromReactiveProp; }; export type ConvertToChangedProps = { [Property in keyof T as `${string & Property}Changed`]: Listener<[ExtractNativeTypeFromReactiveProp, ExtractNativeTypeFromReactiveProp]>; }; export type ConvertToReactProps = { [Property in keyof T as `${string & Property}React`]: ExtractNativeTypeToReactiveProp; }; export type ReactivePropsToNativePropsAndChanged = { [Property in keyof T]: ExtractNativeTypeFromReactiveProp; } & ConvertToChangedProps & ConvertToReactProps; export type OnlyWithUndefined = { [Property in keyof T as (undefined extends T[Property] ? Property : never)]: T[Property]; }; export type ExclueUndefined = { [Property in keyof T as (undefined extends T[Property] ? never : Property)]: T[Property]; }; export type PartialWithUndefined = Partial> & ExclueUndefined; export type PartialWithUndefinedReactivePropsToNativeProps = PartialWithUndefined>;