import { Lens } from "./lens";
declare type ValueOrFunc<T> = T | ((t: T) => T);
declare class SetSequentially<Tfrom> {
    private setters;
    thenWith<Tto>(l: Lens<Tfrom, Tto>, v: ValueOrFunc<Tto>): SetSequentially<Tfrom>;
    apply(m: Tfrom): Tfrom;
}
export declare function setSequentially<Tfrom, Tto>(l: Lens<Tfrom, Tto>, v: ValueOrFunc<Tto>): SetSequentially<Tfrom>;
export {};
