import type { PathType, Root } from './path';
import { Path } from './path';
import type { Ref } from './ref';
import type { Lens } from './lens';
import type { AnyOp, Create, Update } from './operation';
export interface View<TState, TPath extends PathType = Root, TOp extends AnyOp = Update> extends Ref<TOp extends Create ? Lens<TState, TPath> | undefined : Lens<TState, TPath>> {
    delete(): void;
}
/**
 * Returns a view builder function from a given path
 */
declare function createView<TState, TPath extends PathType>(ref: Ref<TState>, path: Path<TPath>): View<TState, TPath>;
export declare const View: {
    from: typeof createView;
};
export {};
