import { ValueBox } from './ValueBox';
export interface SnapshotParams<T, E> {
    expression: () => T;
    effect: () => E;
}
export declare class Snapshot<T, E> {
    readonly box: ValueBox<E>;
    readonly expression: () => T;
    readonly effect: () => E;
    constructor(params: SnapshotParams<T, E>);
    get value(): E;
    set value(v: E);
    forceUpdate(): void;
    init(): () => void;
}
//# sourceMappingURL=snapshot.d.ts.map