import { DirtyLevels, IComputed } from './system.js';
export interface ISignal<T = any> {
    get(): T;
}
export declare function computed<T>(getter: (cachedValue?: T) => T): ISignal<T>;
export declare class Computed<T = any> implements IComputed {
    getter: (cachedValue?: T) => T;
    cachedValue: T | undefined;
    subs: undefined;
    subsTail: undefined;
    linkedTrackId: number;
    deps: undefined;
    depsTail: undefined;
    trackId: number;
    dirtyLevel: DirtyLevels;
    canPropagate: boolean;
    constructor(getter: (cachedValue?: T) => T);
    get(): T;
    update(): void;
}
