import type { Changeset, PackageJSON } from "@changesets/types";
interface ManyPkgPackage {
    dir: string;
    packageJson: PackageJSON;
}
interface Commit {
    commitHash: string;
    commitMessage: string;
}
interface ConventionalMessagesToCommits {
    changelogMessage: string;
    commitHashes: string[];
}
/**
 * Checks if a commit message follows conventional commit format
 * @param commit - The commit message to check
 * @returns True if the commit follows conventional commit format
 */
export declare function isConventionalCommit(commit: string): boolean;
/**
 * Checks if a commit message indicates a breaking change
 * @param commit - The commit message to check
 * @returns True if the commit contains a breaking change indicator
 */
export declare function isBreakingChange(commit: string): boolean;
/**
 * Filters commits to only conventional commits and maps them to changelog format
 * @param commits - Array of commits to translate
 * @returns Array of conventional commit messages with their associated commit hashes
 */
export declare function translateCommitsToConventionalCommitMessages(commits: Commit[]): ConventionalMessagesToCommits[];
/**
 * Gets the list of files changed between two git refs
 * @param opts - Object containing from and to git refs
 * @returns Array of file paths that changed
 */
export declare function getFilesChangedSince(opts: {
    from: string;
    to: string;
}): string[];
/**
 * Gets the absolute path to the git repository root
 * @returns Absolute path to repository root
 */
export declare function getRepoRoot(): string;
/**
 * Converts conventional commit messages to changesets based on affected packages
 * @param conventionalMessagesToCommits - Array of conventional messages with their commit hashes
 * @param options - Configuration options including ignored files and packages
 * @returns Array of changesets for affected packages
 */
export declare function conventionalMessagesWithCommitsToChangesets(conventionalMessagesToCommits: ConventionalMessagesToCommits[], options: {
    ignoredFiles?: (string | RegExp)[];
    includeCommitLinks?: boolean;
    packages: ManyPkgPackage[];
}): Changeset[];
/**
 * Fetches the latest changes from a remote branch
 * @param branch - The branch name to fetch
 */
export declare function gitFetch(branch: string): void;
/**
 * Gets all commit hashes since a specific commit
 * @param sha - The commit SHA to compare against
 * @returns Array of commit hashes since the given commit
 */
export declare function getCommitsSinceCommit(sha: string): string[];
/**
 * Gets all commit hashes since a reference branch or tag
 * @param branch - The branch to compare against
 * @returns Array of commit hashes since the reference point
 */
export declare function getCommitsSinceBranch(branch: string): string[];
/**
 * Returns changesets in array a that are not in array b
 * @param a - Array of changesets to filter
 * @param b - Array of changesets to compare against
 * @returns Changesets that exist in a but not in b
 */
export declare function difference(a: Changeset[], b: Changeset[]): Changeset[];
export {};
//# sourceMappingURL=utils.d.ts.map