import { Signal } from './Signal';
/**
 * Trackable signal class to monitor changes to its value with change tracking.
 * @public
 */
export declare class TrackableSignal<T> extends Signal<T> {
    private _isChanged;
    private readonly _changes;
    /**
     * Initializes a new instance of TrackableSignal.
     *
     * @param initialValue The initial value of the signal.
     */
    constructor(initialValue: T);
    /**
     * Indicates if the signal has been modified since the last change acceptance.
     */
    get isChanged(): boolean;
    /**
     * Factory method for creating a new TrackableSignal instance.
     *
     * @param value Initial value of the trackable signal.
     */
    static from<T>(value: T): TrackableSignal<T>;
    /**
     * Clears all tracked changes, resets the isChanged flag, and keeps only the current value in the changes list.
     */
    acceptChanges(): void;
    /**
     * Retrieves the list of all previous values that the signal has held.
     */
    getChanges(): ReadonlyArray<T>;
    /**
     * Overrides the set method to track changes and add each new value to the changes list.
     *
     * @param next - The new value to set.
     */
    set(next: T): void;
}
//# sourceMappingURL=TrackableSignal.d.ts.map