import { Listener } from './pipe/Event'; import { ReactiveVariable } from "./ReactiveVariable"; export type ReactPropKeys = keyof { [Property in keyof T as T[`${string & Property}Changed`] extends Listener<[T[Property], T[Property]]> ? Property : never]: T[Property]; }; export type ReactPropKeysWithType = keyof { [Property in keyof T as (T[`${string & Property}Changed`] extends Listener<[T[Property], T[Property]]> ? (T[Property] extends R ? Property : never) : never)]: T[Property]; }; export type ReactParamsType = ReactiveVariable | [ obj: T, propName: keyof T, changedName?: keyof T ]; export declare function getCompleteReactParams(reactParams: ReactParamsType): [Object, string, string]; export declare function track(leftReactiveVariable: ReactParamsType, rightReactiveVariable: ReactParamsType, trackFunc?: (srcValue: T2) => T, weak?: boolean): any; export declare function bind(leftReactiveVariable: ReactParamsType, rightReactiveVariable: ReactParamsType, aTrackBFunc?: (srcValue: T2) => T, bTrackAFunc?: (srcValue: T) => T2, weak?: boolean): () => any; export declare function bindu(leftReactiveVariable: ReactParamsType, rightReactiveVariable: ReactParamsType, defaultValue: T, weak?: boolean): () => any;