import { Abon } from "./abon";
import { AbonInheritedDown } from "./abon-inherited-down";
import { ReadonlyAbon } from "./readonly-abon";
import { ChangeListener, UnsubscribeFn, ValueHandler } from "./types";
/** Inherits a value from parents if the current value is undefined. */
export declare class ReadonlyAbonInheritedDown<T> implements ReadonlyAbon<T> {
    protected readonly parent?: Pick<ReadonlyAbon<T | undefined>, "subscribe" | "current">;
    protected readonly value: Abon<T>;
    constructor(initial?: T, parent?: Pick<ReadonlyAbon<T | undefined>, "subscribe" | "current">);
    subscribe(listener: ChangeListener<T>): UnsubscribeFn;
    handle(handler: ValueHandler<T>): UnsubscribeFn;
    use(): this;
    useSubscription(listener: ChangeListener<T>, deps?: readonly any[]): void;
    useHandler(handler: ValueHandler<T>, deps?: readonly any[]): void;
    nest(): AbonInheritedDown<T>;
    get current(): T;
}
