import { Atom, EventStream, EventStreamSeed, Property, PropertySeed } from "./abstractions";
import { Function1, Function2, Function3, Function4, Function5, Function6 } from "./abstractions";
import { LensLike } from "./lenslike";
export declare function view(a: Atom, key: K): K extends number ? Atom : Atom;
export declare function view(a: Atom, lens: LensLike): Atom;
export declare function view(a: Property, key: K): K extends number ? Property : Property;
export declare function view(a: Property, lens: LensLike): Property;
export declare function view(a: Property, fn: Function1): Property;
export declare function view(a: Property, fn1: Function1, fn2: Function1): Property;
export declare function view(a: Property, fn1: Function1, fn2: Function1, fn3: Function1): Property;
export declare function view(a: Property, b: Property, fn: Function2): Property;
export declare function view(a: Property, b: Property, c: Property, fn: Function3): Property;
export declare function view(a: Property, b: Property, c: Property, d: Property, fn: Function4): Property;
export declare function view(a: Property, b: Property, c: Property, d: Property, e: Property, fn: Function5): Property;
export declare function view(a: Property, b: Property, c: Property, d: Property, e: Property, f: Property, fn: Function6): Property;
export declare function view(a: PropertySeed, key: K): K extends number ? PropertySeed : PropertySeed;
export declare function view(a: PropertySeed, lens: LensLike): PropertySeed;
export declare function view(a: PropertySeed, fn: Function1): PropertySeed;
export declare function view(a: PropertySeed, fn1: Function1, fn2: Function1): PropertySeed;
export declare function view(a: PropertySeed, fn1: Function1, fn2: Function1, fn3: Function1): PropertySeed;
export declare function view(a: EventStream, key: K): K extends number ? EventStream : EventStream;
export declare function view(a: EventStream, lens: LensLike): EventStream;
export declare function view(a: EventStream, fn: Function1): EventStream;
export declare function view(a: EventStream, fn1: Function1, fn2: Function1): EventStream;
export declare function view(a: EventStream, fn1: Function1, fn2: Function1, fn3: Function1): EventStream;
export declare function view(a: EventStreamSeed, key: K): K extends number ? EventStreamSeed : EventStreamSeed;
export declare function view(a: EventStreamSeed, lens: LensLike): EventStreamSeed;
export declare function view(a: EventStreamSeed, fn: Function1): EventStreamSeed;
export declare function view(a: EventStreamSeed, fn1: Function1, fn2: Function1): EventStreamSeed;
export declare function view(a: EventStreamSeed, fn1: Function1, fn2: Function1, fn3: Function1): EventStreamSeed;