import { AbonDeep } from "./abon-deep";
import { AbonMap } from "./abon-map";
import { AbonSet } from "./abon-set";
import { ReadonlyAbon } from "./readonly-abon";
import { ComposedSubscriberFlex, Subscribeable, UnsubscribeFn } from "./types";
export declare function composedSubscription(listener: () => void, listen: ComposedSubscriberFlex): UnsubscribeFn;
export declare function hydratedSubscription<LT>(listener: LT, listen: (listener: LT) => UnsubscribeFn, listenHydrate: ComposedSubscriberFlex): UnsubscribeFn;
export declare function hydratedComposedSubscription(listener: () => void, listen: ComposedSubscriberFlex, listenHydrate: ComposedSubscriberFlex): UnsubscribeFn;
export declare function composedHandler(handler: () => void, listen: ComposedSubscriberFlex): UnsubscribeFn;
export declare function hydratedComposedHandler(handler: () => void, listen: ComposedSubscriberFlex, listenHydrate: ComposedSubscriberFlex): UnsubscribeFn;
export declare function useComposedSubscription(listener: () => void, listen: ComposedSubscriberFlex, deps?: readonly any[]): void;
export declare function useHydratedSubscription<LT>(listener: LT, listen: (listener: LT) => UnsubscribeFn, listenHydrate: ComposedSubscriberFlex, deps?: readonly any[]): void;
export declare function useHydratedComposedSubscription(listener: () => void, listen: ComposedSubscriberFlex, listenHydrate: ComposedSubscriberFlex, deps?: readonly any[]): void;
export declare function useComposedHandler(handler: () => void, listen: ComposedSubscriberFlex, deps?: readonly any[]): void;
export declare function useHydratedComposedHandler(handler: () => void, listen: ComposedSubscriberFlex, listenHydrate: ComposedSubscriberFlex, deps?: readonly any[]): void;
export declare function useComposedValue<T>(getValue: () => T, listen: ComposedSubscriberFlex, deps?: readonly any[]): T;
export declare function useHydratedComposedValue<T>(getValue: () => T, listen: ComposedSubscriberFlex, listenHydrate: ComposedSubscriberFlex, deps?: readonly any[]): T;
export declare function useComposedValueAsync<T>(getValue: () => Promise<T>, listen: ComposedSubscriberFlex, deps?: readonly any[]): T | undefined;
export declare function resolve<T>(listen: (listener: (value?: T) => void) => UnsubscribeFn): PromiseLike<void>;
export declare function resolve<T>(abon: ReadonlyAbon<T>): PromiseLike<T>;
export declare function resolve<T extends object>(abon: AbonDeep<T>): PromiseLike<T>;
export declare function resolve<AM extends AbonMap<any, any>>(map: AM): PromiseLike<AM>;
export declare function resolve<AS extends AbonSet<any>>(set: AS): PromiseLike<AS>;
export declare function resolve<S extends Subscribeable<any>>(subscribable: S): PromiseLike<S extends Subscribeable<infer T> ? T : unknown>;
