export interface ReadOnlySignal<T> {
    get value(): T;
    listen(listener: (val: T) => void, callNow: boolean): any;
}
export declare class Signal<T> implements ReadOnlySignal<T> {
    private _value;
    private listeners;
    constructor(_value: T);
    get value(): T;
    set value(newValue: T);
    listen(listener: (val: T) => void, callNow?: boolean): () => void;
    get asReadOnly(): ReadOnlySignal<T>;
}
