kdp-book-generator
Version:
Generate KDP-compliant PDFs and EPUBs from Markdown for Amazon book publishing
51 lines • 2.17 kB
TypeScript
import { BookConfig, BookFormat, Margins, Typography, PageNumberConfig } from '../types';
/**
* Manager for book configuration with KDP-compliant defaults and validation
*
* Features:
* - Pre-defined KDP-compliant book formats
* - Automatic margin calculation based on page count
* - Configuration validation and merging
* - Typography presets for professional book layout
*/
export declare class BookConfigManager {
private static readonly KDP_FORMATS;
/**
* Get the default book configuration with KDP-compliant settings
*
* @returns Default BookConfig with 6"x9" format and standard typography
*/
static getDefaultConfig(): BookConfig;
static getKindleConfig(): BookConfig;
/**
* Calculate KDP-compliant margins based on page count
*
* @param pageCount - Total number of pages in the book
* @param format - Book format identifier (e.g., '6x9', '5.5x8.5')
* @returns Margins object with calculated inside/outside margins per KDP requirements
*
* KDP margin requirements:
* - 24 pages or less: 0.375" inside
* - 25-150 pages: 0.5" inside
* - 151-300 pages: 0.625" inside
* - 301-500 pages: 0.75" inside
* - 501+ pages: 0.875" inside
*/
static calculateKDPMargins(pageCount: number, format: string): Margins;
static getDefaultTypography(): Typography;
static getDefaultPageNumbers(): PageNumberConfig;
static validateConfig(config: BookConfig): {
valid: boolean;
errors: string[];
};
static getAvailableFormats(): string[];
static getFormatByName(name: string): BookFormat | undefined;
static createCustomFormat(name: string, width: number, height: number, unit?: 'in' | 'mm' | 'cm'): BookFormat;
static getKindleMargins(): Margins;
static getKindleTypography(): Typography;
static getKindlePageNumbers(): PageNumberConfig;
static mergeConfig(defaultConfig: BookConfig, userConfig: Partial<BookConfig>): BookConfig;
static loadFromFile(_configPath: string): BookConfig;
static saveToFile(_config: BookConfig, _configPath: string): void;
}
//# sourceMappingURL=book-config.d.ts.map