import * as I from "../index"; import { Shelf } from "./shelf"; export declare type Shelves = { [id: string]: Shelf; }; export declare namespace Shelves { const empty: Shelves; const at: ((key: string) => (outer: I.Cursor<{ [key: string]: Shelf; }, I.Action<"AT", I.At | I.Action<"BOOKS", I.Action<"AT", I.At | I.Action<"TITLE", I.Action<"REPLACE", string>> | I.Action<"SET_TITLE", string> | I.Action<"ADD_AUTHOR", string>>> | I.Action<"REMOVE", number>>>>>) => I.Cursor | I.Action<"BOOKS", I.Action<"AT", I.At | I.Action<"TITLE", I.Action<"REPLACE", string>> | I.Action<"SET_TITLE", string> | I.Action<"ADD_AUTHOR", string>>> | I.Action<"REMOVE", number>>>) & { update: (key: string, action: I.Action<"SET_DESCRIPTION", string> | I.Action<"BOOKS", I.Action<"AT", I.At | I.Action<"TITLE", I.Action<"REPLACE", string>> | I.Action<"SET_TITLE", string> | I.Action<"ADD_AUTHOR", string>>> | I.Action<"REMOVE", number>>) => I.Action<"AT", I.At | I.Action<"BOOKS", I.Action<"AT", I.At | I.Action<"TITLE", I.Action<"REPLACE", string>> | I.Action<"SET_TITLE", string> | I.Action<"ADD_AUTHOR", string>>> | I.Action<"REMOVE", number>>>>; } & I.ActionDefinition<{ [key: string]: Shelf; }, "AT", I.At | I.Action<"BOOKS", I.Action<"AT", I.At | I.Action<"TITLE", I.Action<"REPLACE", string>> | I.Action<"SET_TITLE", string> | I.Action<"ADD_AUTHOR", string>>> | I.Action<"REMOVE", number>>>>; const reduce: I.ReducerBuilder<{ [id: string]: Shelf; }, I.Action<"AT", I.At | I.Action<"BOOKS", I.Action<"AT", I.At | I.Action<"TITLE", I.Action<"REPLACE", string>> | I.Action<"SET_TITLE", string> | I.Action<"ADD_AUTHOR", string>>> | I.Action<"REMOVE", number>>>>>; } export interface Shop { readonly name: string; readonly shelves: { [id: string]: Shelf; }; } export declare namespace Shop { const setName: I.ActionCreator; const shelves: I.ReferenceDefinition<"SHELVES", Shop, { [id: string]: Shelf; }, I.Action<"AT", I.At | I.Action<"BOOKS", I.Action<"AT", I.At | I.Action<"TITLE", I.Action<"REPLACE", string>> | I.Action<"SET_TITLE", string> | I.Action<"ADD_AUTHOR", string>>> | I.Action<"REMOVE", number>>>>>; const empty: Shop; const reduce: I.ReducerBuilder | I.Action<"SHELVES", I.Action<"AT", I.At | I.Action<"BOOKS", I.Action<"AT", I.At | I.Action<"TITLE", I.Action<"REPLACE", string>> | I.Action<"SET_TITLE", string> | I.Action<"ADD_AUTHOR", string>>> | I.Action<"REMOVE", number>>>>>>; }