import BaseFluxel from "./index.js";
import ReactiveDependency from "./reactiveDependency.js";
import type { ChildrenType, StateParam, FluxelJSXElement, CanBeReactive } from "./type.js";
interface MergeDependencies {
    <T, U, V>(dep0: ReactiveDependency<T>, dep1: ReactiveDependency<U>, dep2: ReactiveDependency<V>): ReactiveDependency<[T, U, V]>;
    <T, U>(dep0: ReactiveDependency<T>, dep1: ReactiveDependency<U>): ReactiveDependency<[T, U]>;
    <T>(...deps: ReactiveDependency<T>[]): ReactiveDependency<T[]>;
}
declare const Fluxel: typeof BaseFluxel & {
    reactive: <T extends object, R extends CanBeReactive<ChildrenType | FluxelJSXElement>>(initialState: T, renderer: (stateParam: StateParam<T>) => R) => R;
    schedule: (fn: () => void) => void;
    mergeDependencies: MergeDependencies;
};
export declare const pureStateReservedKeys: readonly ["render", "use", "useWithMemo", "listenTarget"];
export default Fluxel;
