import { NormalizedConfig } from "./normalizer";
export interface FileEntry {
    filePath: string;
    content: string;
}
/** Sentinel used to explicitly drop a value. */
export declare const DROP: unique symbol;
export declare const DEFAULT_BACKUP_DIR = ".merge-backups";
/**
 * Status codes returned by strategy functions.
 * Using individual constants for optimal bundle size.
 */
export declare const StrategyStatus_OK: 0;
export declare const StrategyStatus_CONTINUE: 1;
export declare const StrategyStatus_FAIL: 2;
export declare const StrategyStatus_SKIP: 3;
/**
 * Checks whether the given file contains Git merge conflict markers.
 *
 * @param content - File content to check.
 * @returns `true` if conflict markers exist, otherwise `false`.
 */
export declare const hasConflict: (content: string) => boolean;
export type CollectFilesOptions = Pick<NormalizedConfig, "include" | "exclude" | "matcher" | "includeNonConflicted" | "debug" | "backupDir"> & {
    /** Root directory to start traversal (defaults to `process.cwd()`). */
    root?: string;
};
/**
 * Recursively collects files that match the provided `fileFilter`.
 *
 * - By default, only conflicted files are returned.
 * - If `includeNonConflicted` is enabled, matching files are always included.
 *
 * @param options - Collection options, including `fileFilter` and traversal root.
 * @returns A promise that resolves with an array of `{ filePath, content }`.
 */
export declare const listMatchingFiles: ({ root, include, exclude, matcher, includeNonConflicted, debug, backupDir, }: CollectFilesOptions) => Promise<FileEntry[]>;
/**
 * Derive directory pruning patterns from include/exclude rules.
 * These patterns are used to avoid walking unnecessary directories.
 */
export declare const createSkipDirectoryMatcher: (include: string[], exclude: string[], matcher: NormalizedConfig["matcher"]) => (dirPath: string) => boolean;
export declare const backupFile: (filePath: string, backupDir?: string) => Promise<string>;
export declare const restoreBackups: (backupDir?: string) => Promise<void>;
