/**
 * Validation utilities for configuration and user inputs
 */
import { type MessageStyle } from './messages.js';
export interface Author {
    name: string;
    email: string;
}
export interface DateRangeConfig {
    startDate: string;
    endDate: string;
}
export interface CommitsConfig {
    maxPerDay: number;
    distribution: 'uniform' | 'random' | 'gaussian' | 'custom' | 'pattern';
    messageStyle: MessageStyle;
    customMessages?: string[];
    pattern?: PatternConfig;
}
export interface PatternConfig {
    type?: 'preset' | 'custom' | 'text';
    preset?: string;
    custom?: string;
    text?: string;
    scale?: number;
    intensity?: 'low' | 'medium' | 'high';
    centerX?: number;
    centerY?: number;
}
export interface OptionsConfig {
    preview?: boolean;
    push?: boolean;
    verbose?: boolean;
    dev?: boolean;
    seed?: string;
}
export interface Config {
    author: Author;
    dateRange: DateRangeConfig;
    commits: CommitsConfig;
    options?: OptionsConfig;
}
export interface ValidationResult {
    valid: boolean;
    errors: string[];
    warnings: string[];
}
/**
 * Validates email format using a robust regex pattern
 */
export declare function isValidEmail(email: string): boolean;
/**
 * Validates author name format
 */
export declare function isValidAuthorName(name: string): boolean;
/**
 * Validates author configuration
 */
export declare function validateAuthor(author: unknown): ValidationResult;
/**
 * Validates date range configuration
 */
export declare function validateDateRange(dateRange: unknown): ValidationResult;
/**
 * Validates commits configuration
 */
export declare function validateCommits(commits: unknown): ValidationResult;
/**
 * Validates pattern configuration
 */
export declare function validatePattern(pattern: unknown): ValidationResult;
/**
 * Validates options configuration
 */
export declare function validateOptions(options: unknown): ValidationResult;
/**
 * Validates the complete configuration object
 */
export declare function validateConfig(config: unknown): ValidationResult;
/**
 * Sanitizes a string by trimming whitespace and removing control characters
 */
export declare function sanitizeString(input: string): string;
/**
 * Sanitizes an email address
 */
export declare function sanitizeEmail(email: string): string;
/**
 * Sanitizes an author name
 */
export declare function sanitizeAuthorName(name: string): string;
/**
 * Sanitizes the entire configuration object
 */
export declare function sanitizeConfig(config: Config): Config;
//# sourceMappingURL=validation.d.ts.map