import { ObjectPredicate } from 'ow'; import { Merge } from 'type-fest'; export type Chapter = { title?: string; author?: string | string[]; content: string; excludeFromToc?: boolean; beforeToc?: boolean; filename?: string; url?: string; }; export type Content = readonly Chapter[]; export type Font = { filename: string; url: string; }; export type LogFn = (type: 'log' | 'warn', ...args: any[]) => void; export type Options = { title: string; author?: string | string[]; publisher?: string; description?: string; cover?: string; tocTitle?: string; tocInTOC?: boolean; numberChaptersInTOC?: boolean; prependChapterTitles?: boolean; date?: string; lang?: string; css?: string; chapterXHTML?: string; contentOPF?: string; tocNCX?: string; tocXHTML?: string; fonts?: Font[]; version?: number; fetchTimeout?: number; retryTimes?: number; batchSize?: number; ignoreFailedDownloads?: boolean; verbose?: boolean | LogFn; }; export declare const chapterPredicate: ObjectPredicate; export declare const fontPredicate: ObjectPredicate; export declare const optionsPredicate: ObjectPredicate; type NonNullableObject = T extends Record ? Required<{ [key in keyof T]: NonNullableObject; }> : T extends Array ? Array> : NonNullable; export type NormOptions = NonNullableObject>; export type NormChapter = NonNullableObject>; export {};