/**
 * Release Manager
 * Automated release management with semantic versioning
 */
import * as semver from 'semver';
export interface ReleaseConfig {
    packagePath: string;
    changelogPath?: string;
    tagPrefix?: string;
    prerelease?: string;
    dryRun?: boolean;
}
export interface ReleaseInfo {
    currentVersion: string;
    nextVersion: string;
    releaseType: semver.ReleaseType;
    changes: Change[];
    breaking: boolean;
}
export interface Change {
    type: 'feat' | 'fix' | 'docs' | 'style' | 'refactor' | 'test' | 'chore';
    scope?: string;
    subject: string;
    breaking?: boolean;
    hash: string;
    author: string;
    date: Date;
}
export declare class ReleaseManager {
    private config;
    constructor(config: ReleaseConfig);
    /**
     * Analyze commits and determine next version
     */
    analyzeRelease(): Promise<ReleaseInfo>;
    /**
     * Execute release
     */
    release(releaseType?: semver.ReleaseType): Promise<void>;
    /**
     * Read package.json
     */
    private readPackageJson;
    /**
     * Update version in package.json
     */
    private updateVersion;
    /**
     * Get last tag for version
     */
    private getLastTag;
    /**
     * Get commits since tag
     */
    private getCommitsSince;
    /**
     * Parse commits into changes
     */
    private parseCommits;
    /**
     * Determine release type from changes
     */
    private determineReleaseType;
    /**
     * Update changelog
     */
    private updateChangelog;
    /**
     * Commit release changes
     */
    private commitRelease;
    /**
     * Create git tag
     */
    private createTag;
    /**
     * Publish to npm
     */
    private publish;
}
/**
 * Changelog generator
 */
export declare class ChangelogGenerator {
    /**
     * Generate changelog from git history
     */
    static generate(options?: {
        from?: string;
        to?: string;
        format?: 'markdown' | 'json';
    }): Promise<string>;
}
//# sourceMappingURL=release-manager.d.ts.map