import { Map } from "immutable";
import * as I from "../index";
import { Book } from "./book";
export interface Shelf {
    readonly description: string;
    readonly books: Map<number, Book>;
}
export declare namespace Shelf {
    const setDescription: I.ActionCreator<Shelf, "SET_DESCRIPTION", string>;
    const books: I.CollectionDefinition<"BOOKS", Shelf, Map<number, Book>, number, Book, I.Action<"TITLE", I.Action<"REPLACE", string>> | I.Action<"SET_TITLE", string> | I.Action<"SET_PRICE", number> | I.Action<"ADD_AUTHOR", string>>;
    const empty: Shelf;
    const reduce: I.Reducer<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>>>>;
}
