import Immutable from "immutable";
import FS from "./fs";
import Config from "./config";
import Readme from "./readme";
import Summary from "./summary";
import Glossary from "./glossary";
import Languages from "./languages";
import Ignore from "./ignore";
declare const Book_base: Immutable.Record.Class;
declare class Book extends Book_base {
    getLogger(): any;
    getFS(): FS;
    getIgnore(): Ignore;
    getConfig(): Config;
    getReadme(): Readme;
    getSummary(): Summary;
    getGlossary(): Glossary;
    getLanguages(): Languages;
    getBooks(): any;
    getLanguage(): any;
    /**
     Return FS instance to access the content

     @return {FS}
     */
    getContentFS(): FS;
    /**
     Return root of the book

     @return {string}
     */
    getRoot(): string;
    /**
     Return root for content of the book

     @return {string}
     */
    getContentRoot(): string;
    /**
     Check if a file is ignore (should not being parsed, etc)

     @param {string} ref
     @return {Page|undefined}
     */
    isFileIgnored(filename: any): boolean;
    /**
     Check if a content file is ignore (should not being parsed, etc)

     @param {string} ref
     @return {Page|undefined}
     */
    isContentFileIgnored(filename: any): boolean;
    /**
     Is this book the parent of language's books

     @return {boolean}
     */
    isMultilingual(): boolean;
    /**
     Return true if book is associated to a language

     @return {boolean}
     */
    isLanguageBook(): boolean;
    /**
     Return a languages book

     @param {string} language
     @return {Book}
     */
    getLanguageBook(language: any): any;
    /**
     Add a new language book

     @param {string} language
     @param {Book} book
     @return {Book}
     */
    addLanguageBook(language: any, book: any): Immutable.Map<string, any>;
    /**
     Set the summary for this book

     @param {Summary}
     @return {Book}
     */
    setSummary(summary: any): Immutable.Map<string, any>;
    /**
     Set the readme for this book

     @param {Readme}
     @return {Book}
     */
    setReadme(readme: any): Immutable.Map<string, any>;
    /**
     Set the configuration for this book

     @param {Config}
     @return {Book}
     */
    setConfig(config: any): Immutable.Map<string, any>;
    /**
     Set the ignore instance for this book

     @param {Ignore}
     @return {Book}
     */
    setIgnore(ignore: any): Immutable.Map<string, any>;
    /**
     Change log level

     @param {string} level
     @return {Book}
     */
    setLogLevel(level: any): this;
    /**
     Create a book using a filesystem

     @param {FS} fs
     @return {Book}
     */
    static createForFS(fs: any): Book;
    /**
     Infers the default extension for files
     @return {string}
     */
    getDefaultExt(): any;
    /**
     Infer the default path for a Readme.
     @param {boolean} [absolute=false] False for a path relative to
     this book's content root
     @return {string}
     */
    getDefaultReadmePath(absolute: any): string;
    /**
     Infer the default path for a Summary.
     @param {boolean} [absolute=false] False for a path relative to
     this book's content root
     @return {string}
     */
    getDefaultSummaryPath(absolute: any): string;
    /**
     Infer the default path for a Glossary.
     @param {boolean} [absolute=false] False for a path relative to
     this book's content root
     @return {string}
     */
    getDefaultGlossaryPath(absolute: any): string;
    /**
     Create a language book from a parent

     @param {Book} parent
     @param {string} language
     @return {Book}
     */
    static createFromParent(parent: any, language: any): Book;
}
export default Book;
//# sourceMappingURL=book.d.ts.map