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