/**
 * Options for git diff operations.
 */
export interface GitDiffOptions {
    absolute?: boolean;
    cache?: boolean;
    cwd?: string;
    porcelain?: boolean;
    asSet?: boolean;
    [key: string]: unknown;
}
/**
 * Options for package filtering operations.
 */
export interface FilterPackagesByChangesOptions {
    force?: boolean;
    packageKey?: string;
    [key: string]: unknown;
}
/**
 * Get all changed files including staged, unstaged, and untracked files.
 * Uses `git status --porcelain` which returns the full working tree status
 * with status codes (M=modified, A=added, D=deleted, ??=untracked, etc.).
 * This is the most comprehensive check - captures everything that differs
 * from the last commit.
 */
export declare function getChangedFiles(options?: GitDiffOptions): Promise<string[]>;
/**
 * Get all changed files including staged, unstaged, and untracked files.
 * Uses `git status --porcelain` which returns the full working tree status
 * with status codes (M=modified, A=added, D=deleted, ??=untracked, etc.).
 * This is the most comprehensive check - captures everything that differs
 * from the last commit.
 */
export declare function getChangedFilesSync(options?: GitDiffOptions): string[];
/**
 * Get unstaged modified files (changes not yet staged for commit).
 * Uses `git diff --name-only` which returns only unstaged modifications
 * to tracked files. Does not include untracked files or staged changes.
 * This is a focused check for uncommitted changes to existing files.
 */
export declare function getUnstagedFiles(options?: GitDiffOptions): Promise<string[]>;
/**
 * Get unstaged modified files (changes not yet staged for commit).
 * Uses `git diff --name-only` which returns only unstaged modifications
 * to tracked files. Does not include untracked files or staged changes.
 * This is a focused check for uncommitted changes to existing files.
 */
export declare function getUnstagedFilesSync(options?: GitDiffOptions): string[];
/**
 * Get staged files ready for commit (changes added with `git add`).
 * Uses `git diff --cached --name-only` which returns only staged changes.
 * Does not include unstaged modifications or untracked files.
 * This is a focused check for what will be included in the next commit.
 */
export declare function getStagedFiles(options?: GitDiffOptions): Promise<string[]>;
/**
 * Get staged files ready for commit (changes added with `git add`).
 * Uses `git diff --cached --name-only` which returns only staged changes.
 * Does not include unstaged modifications or untracked files.
 * This is a focused check for what will be included in the next commit.
 */
export declare function getStagedFilesSync(options?: GitDiffOptions): string[];
/**
 * Check if pathname has any changes (staged, unstaged, or untracked).
 */
export declare function isChanged(pathname: string, options?: GitDiffOptions): Promise<boolean>;
/**
 * Check if pathname has any changes (staged, unstaged, or untracked).
 */
export declare function isChangedSync(pathname: string, options?: GitDiffOptions): boolean;
/**
 * Check if pathname has unstaged changes (modified but not staged).
 */
export declare function isUnstaged(pathname: string, options?: GitDiffOptions): Promise<boolean>;
/**
 * Check if pathname has unstaged changes (modified but not staged).
 */
export declare function isUnstagedSync(pathname: string, options?: GitDiffOptions): boolean;
/**
 * Check if pathname is staged for commit.
 */
export declare function isStaged(pathname: string, options?: GitDiffOptions): Promise<boolean>;
/**
 * Check if pathname is staged for commit.
 */
export declare function isStagedSync(pathname: string, options?: GitDiffOptions): boolean;
declare const _default: {
    getChangedFiles: typeof getChangedFiles;
    getChangedFilesSync: typeof getChangedFilesSync;
    getStagedFiles: typeof getStagedFiles;
    getStagedFilesSync: typeof getStagedFilesSync;
    getUnstagedFiles: typeof getUnstagedFiles;
    getUnstagedFilesSync: typeof getUnstagedFilesSync;
    isChanged: typeof isChanged;
    isChangedSync: typeof isChangedSync;
    isStaged: typeof isStaged;
    isStagedSync: typeof isStagedSync;
    isUnstaged: typeof isUnstaged;
    isUnstagedSync: typeof isUnstagedSync;
};
export default _default;
