/**
 * Commit generation and distribution algorithms
 * This module handles the logic for distributing commits across date ranges
 * using different distribution strategies.
 */
import type { Config } from './config.js';
import { GitOperations } from './git.js';
export interface CommitPlan {
    date: Date;
    count: number;
    messages: string[];
}
export interface DistributionParams {
    totalDays: number;
    maxPerDay: number;
    seed?: string;
}
export interface GaussianDistributionParams extends DistributionParams {
    mean?: number;
    stdDev?: number;
}
export interface CustomDistributionParams extends DistributionParams {
    pattern?: number[];
    weights?: number[];
}
export interface PatternDistributionParams extends DistributionParams {
    patternConfig: import('./config.js').PatternConfig;
}
/**
 * Generate commits using uniform distribution
 * Distributes commits evenly across the date range
 */
export declare function generateUniformDistribution(dateRange: Date[], params: DistributionParams): CommitPlan[];
/**
 * Generate commits using random distribution
 * Each day has a random chance of having commits, with random counts
 */
export declare function generateRandomDistribution(dateRange: Date[], params: DistributionParams): CommitPlan[];
/**
 * Generate commits using Gaussian (normal) distribution
 * Concentrates commits around a central period with natural falloff
 */
export declare function generateGaussianDistribution(dateRange: Date[], params: GaussianDistributionParams): CommitPlan[];
/**
 * Generate commits using custom distribution
 * Allows for custom patterns and day-of-week weights
 */
export declare function generateCustomDistribution(dateRange: Date[], params: CustomDistributionParams): CommitPlan[];
/**
 * Generate commits using pattern distribution
 * Creates visual patterns in the GitHub contribution graph
 */
export declare function generatePatternDistribution(dateRange: Date[], params: PatternDistributionParams): CommitPlan[];
/**
 * Generate commit plan based on configuration
 * Main entry point for commit generation
 */
export declare function generateCommitPlan(config: Config): CommitPlan[];
/**
 * Calculate statistics for a commit plan
 */
export declare function calculateCommitStats(plans: CommitPlan[]): {
    totalCommits: number;
    totalDays: number;
    activeDays: number;
    averagePerDay: number;
    maxPerDay: number;
    minPerDay: number;
};
/**
 * Result of commit creation process
 */
export interface CommitCreationResult {
    success: boolean;
    totalCommits: number;
    successfulCommits: number;
    failedCommits: number;
    errors: string[];
    commitHashes: string[];
    duration: number;
}
/**
 * Populate commit plan with actual messages based on style
 */
export declare function populateCommitMessages(plans: CommitPlan[], config: Config): CommitPlan[];
/**
 * Create actual commits based on the populated commit plan
 */
export declare function createCommitsFromPlan(plans: CommitPlan[], config: Config, gitOps: GitOperations): Promise<CommitCreationResult>;
/**
 * Main function to generate and create commits based on configuration
 * This is the main entry point for Step 5.2
 */
export declare function generateAndCreateCommits(config: Config, gitOps: GitOperations): Promise<CommitCreationResult>;
/**
 * Validate commit plan before execution
 */
export declare function validateCommitPlan(plans: CommitPlan[], config: Config): {
    valid: boolean;
    errors: string[];
    warnings: string[];
};
//# sourceMappingURL=commits.d.ts.map