import { NonPrimitiveUnitBase } from './abstract-non-primitive-unit-base';
import { KOf, UnitConfig } from '../models';
/**
 * GenericUnit is a reactive storage Unit that doesn't pertain to any specific data type.
 *
 * GenericUnit accepts all data types as its value.
 *
 * Learn more about Units [here](https://docs.activejs.dev/fundamentals/units). \
 * Learn more about GenericUnit [here](https://docs.activejs.dev/fundamentals/units/genericunit).
 *
 * Just like every other Non-Primitive ActiveJS Unit:
 * - GenericUnit extends {@link NonPrimitiveUnitBase}
 * - Which further extends {@link UnitBase}, {@link Base} and `Observable`
 *
 * @category 1. Units
 */
export declare class GenericUnit<T, K extends KOf<T> = KOf<T>, V extends T[K] = T[K]> extends NonPrimitiveUnitBase<T> {
    constructor(config?: UnitConfig<T>);
    /**
     * The underlying method that makes `skipNilValues` possible for {@link goBack} and {@link goForward}.
     *
     * @param direction The direction to find the non `null` or `undefined` value in.
     *
     * @hidden
     * @category Cache Navigation
     */
    private goToNonNilValue;
    /**
     * It extends {@link UnitBase.goBack}, and allows skipping over nil (null or undefined) values. \
     * To skip over nil values pass `true` as `skipNilValues`.
     *
     * @param skipNilValues Should the `null` and `undefined` values be skipped over.
     *
     * @category Cache Navigation
     */
    goBack(skipNilValues?: boolean): boolean;
    /**
     * It extends {@link UnitBase.goForward}, and allows skipping over nil (null or undefined) values. \
     * To skip over nil values pass `true` as `skipNilValues`.
     *
     * @param skipNilValues Should the `null` and `undefined` values be skipped over.
     *
     * @category Cache Navigation
     */
    goForward(skipNilValues?: boolean): boolean;
    /**
     * @internal please do not use.
     */
    protected isValidValue(value: any): boolean;
}
