import { CompositionEventHandler } from 'react';
import { FieldModel } from './models/field';
export declare function multi<T, R>(...funcs: ((t: T) => R)[]): (t: T) => void;
export declare function useMulti<T, R>(func1: (t: T) => R, func2: (t: T) => R, deps?: any[]): (t: T) => void;
export declare function useMulti<T, R>(func1: (t: T) => R, func2: (t: T) => R, func3: (t: T) => R, deps?: any[]): (t: T) => void;
export declare function useMulti<T, R>(func1: (t: T) => R, func2: (t: T) => R, func3: (t: T) => R, func4: (t: T) => R, deps?: any[]): (t: T) => void;
export declare function useMulti<T, R>(func1: (t: T) => R, func2: (t: T) => R, func3: (t: T) => R, func4: (t: T) => R, func5: (t: T) => R, deps?: any[]): (t: T) => void;
export declare function useMulti<T, R>(func1: (t: T) => R, func2: (t: T) => R, func3: (t: T) => R, func4: (t: T) => R, func5: (t: T) => R, func6: (t: T) => R, deps?: any[]): (t: T) => void;
export declare function useMulti<T, R>(func1: (t: T) => R, func2: (t: T) => R, func3: (t: T) => R, func4: (t: T) => R, func5: (t: T) => R, func6: (t: T) => R, func7: (t: T) => R, deps?: any[]): (t: T) => void;
export declare function useMulti<T, R>(func1: (t: T) => R, func2: (t: T) => R, func3: (t: T) => R, func4: (t: T) => R, func5: (t: T) => R, func6: (t: T) => R, func7: (t: T) => R, func8: (t: T) => R, deps?: any[]): (t: T) => void;
export declare type Func<Args extends any[], R> = (...args: Args) => R;
export declare type Middleware<F> = (next: F) => F;
export declare function compose<Target>(...middlewares: Middleware<Target>[]): (target: Target) => Target;
export declare function useMAppend<T>(...fns: ((t: T) => void)[]): (t: T) => void;
export declare function usePipe<T0, T1, T2>(fn0: (t0: T0) => T1, fn1: (t1: T1) => T2, deps?: any[]): (t0: T0) => T2;
export declare function usePipe<T0, T1, T2, T3>(fn0: (t0: T0) => T1, fn1: (t1: T1) => T2, fn2: (t2: T2) => T3, deps?: any[]): (t0: T0) => T3;
export declare function usePipe<T0, T1, T2, T3, T4>(fn0: (t0: T0) => T1, fn1: (t1: T1) => T2, fn2: (t2: T2) => T3, fn3: (t3: T3) => T4, deps?: any[]): (t0: T0) => T4;
export declare function usePipe<T0, T1, T2, T3, T4, T5>(fn0: (t0: T0) => T1, fn1: (t1: T1) => T2, fn2: (t2: T2) => T3, fn3: (t3: T3) => T4, fn4: (t4: T4) => T5, deps?: any[]): (t0: T0) => T5;
export declare function usePipe<T0, T1, T2, T3, T4, T5, T6>(fn0: (t0: T0) => T1, fn1: (t1: T1) => T2, fn2: (t2: T2) => T3, fn3: (t3: T3) => T4, fn4: (t4: T4) => T5, fn5: (t5: T5) => T6, deps?: any[]): (t0: T0) => T6;
export declare function usePipe<T0, T1, T2, T3, T4, T5, T6, T7>(fn0: (t0: T0) => T1, fn1: (t1: T1) => T2, fn2: (t2: T2) => T3, fn3: (t3: T3) => T4, fn4: (t4: T4) => T5, fn5: (t5: T5) => T6, fn6: (t6: T6) => T7, deps?: any[]): (t0: T0) => T7;
export declare function usePipe<T0, T1, T2, T3, T4, T5, T6, T7, T8>(fn0: (t0: T0) => T1, fn1: (t1: T1) => T2, fn2: (t2: T2) => T3, fn3: (t3: T3) => T4, fn4: (t4: T4) => T5, fn5: (t5: T5) => T6, fn6: (t6: T6) => T7, fn7: (t7: T7) => T8, deps?: any[]): (t0: T0) => T8;
export declare function useChangeHandler<Value>(model: FieldModel<Value>, option?: number, callback?: (value: Value) => void): (value: Value) => void;
export declare const makeChangeHandler: typeof useChangeHandler;
export interface ICompositionHandlers<E = Element> {
    onCompositionStart: CompositionEventHandler<E>;
    onCompositionEnd: CompositionEventHandler<E>;
}
export declare function useCompositionHandler<Value, E = Element>(model: FieldModel<Value>, callbacks?: Partial<ICompositionHandlers<E>>): ICompositionHandlers<E>;
