import { Map } from "immutable";
import * as I from "../index";
import { Shelf } from "./shelf";
export interface Shop {
    readonly name: string;
    readonly shelves: Map<string, Shelf>;
}
export declare namespace Shop {
    const setName: I.ActionCreator<Shop, "SET_NAME", string>;
    const shelves: I.CollectionDefinition<"SHELVES", Shop, Map<string, Shelf>, string, Shelf, I.Action<"SET_DESCRIPTION", string> | I.Action<"BOOKS", I.Update<number, I.Action<"TITLE", I.Action<"REPLACE", string>> | I.Action<"SET_TITLE", string> | I.Action<"SET_PRICE", number> | I.Action<"ADD_AUTHOR", string>>>>;
    const empty: Shop;
    const reduce: I.Reducer<Shop, I.Action<"SET_NAME", string> | I.Action<"SHELVES", I.Update<string, I.Action<"SET_DESCRIPTION", string> | I.Action<"BOOKS", I.Update<number, I.Action<"TITLE", I.Action<"REPLACE", string>> | I.Action<"SET_TITLE", string> | I.Action<"SET_PRICE", number> | I.Action<"ADD_AUTHOR", string>>>>>>;
}
