export interface AuthorConfig {
    name: string;
    email: string;
}
export interface DateRangeConfig {
    startDate: string;
    endDate: string;
}
export interface CommitsConfig {
    maxPerDay: number;
    distribution: 'uniform' | 'random' | 'gaussian' | 'custom' | 'pattern';
    messageStyle: 'default' | 'lorem' | 'emoji';
    pattern?: PatternConfig;
}
export interface PatternConfig {
    type?: 'preset' | 'custom' | 'text';
    preset?: string;
    custom?: string;
    text?: string;
    scale?: number;
    intensity?: 'low' | 'medium' | 'high';
    repeat?: number;
    centerX?: number;
    centerY?: number;
}
export interface OptionsConfig {
    preview: boolean;
    push: boolean;
    verbose: boolean;
    dev: boolean;
    repositoryPath: string;
    yes: boolean;
}
export interface Config {
    author: AuthorConfig;
    dateRange: DateRangeConfig;
    commits: CommitsConfig;
    options: OptionsConfig;
    seed?: string;
}
export interface PartialConfig {
    author?: Partial<AuthorConfig>;
    dateRange?: Partial<DateRangeConfig>;
    commits?: Partial<CommitsConfig>;
    options?: Partial<OptionsConfig>;
    seed?: string;
}
export interface CliOptions {
    days?: string;
    commits?: string;
    startDate?: string;
    endDate?: string;
    distribution?: string;
    messageStyle?: string;
    authorName?: string;
    authorEmail?: string;
    preview?: boolean;
    config?: string;
    push?: boolean;
    seed?: string;
    verbose?: boolean;
    dev?: boolean;
    repoPath?: string;
    yes?: boolean;
    pattern?: string;
    customPattern?: string;
    patternText?: string;
    patternScale?: string;
    patternIntensity?: string;
    patternRepeat?: string;
}
/**
 * Load configuration from a JSON file
 * @param configPath - Path to the configuration file
 * @returns Parsed configuration object or null if file doesn't exist
 */
export declare function loadConfigFromFile(configPath: string): Promise<PartialConfig | null>;
/**
 * Convert CLI options to partial config format
 * @param cliOptions - Options from CLI
 * @returns Partial configuration object
 */
export declare function cliOptionsToConfig(cliOptions: CliOptions): PartialConfig;
/**
 * Apply default values to configuration
 * @param config - Partial configuration object
 * @returns Complete configuration with defaults applied
 */
export declare function applyDefaults(config: PartialConfig): Config;
/**
 * Load and merge configuration from file and CLI options
 * @param cliOptions - CLI options
 * @returns Complete validated configuration
 */
export declare function loadConfig(cliOptions: CliOptions): Promise<Config>;
/**
 * Get default configuration
 * @returns Default configuration object
 */
export declare function getDefaultConfig(): Config;
//# sourceMappingURL=config.d.ts.map