/**
 * Creates a draft edit or addition marker file only.
 *
 * @param filePath - The absolute path to the file for which to create the respective marker.
 * @param appRootDirPath - The absolute path to the app root directory.
 */
export declare function createDraftMarkerOnly(filePath: string, appRootDirPath: string): Promise<void>;
/**
 * Creates a draft edit or addition based on the presence of an existing file.
 * This makes the draft content visible to the build system while preserving the original.
 *
 * @param filePath - The absolute path to the file to edit or add.
 * @param draftContent - The content of the draft edit or addition.
 * @param appRootDirPath - The absolute path to the app root directory.
 * @returns A promise that resolves to "edit" if the file already exists, or "add" if the file does not exist.
 */
export declare function createDraft(filePath: string, draftContent: string | Buffer, appRootDirPath: string): Promise<"edit" | "add">;
/**
 * Creates a draft edit by copying the original file to the drafts directory and writing draft content to the original location.
 * This makes the draft content visible to the build system while preserving the original.
 * If a draft edit already exists, this will just update the draft content.
 *
 * @param filePath - The absolute path to the file to edit.
 * @param draftContent - The content of the draft edit.
 * @param appRootDirPath - The absolute path to the app root directory.
 * @returns A promise that resolves when the draft edit is created.
 */
export declare function createDraftEdit(filePath: string, draftContent: string | Buffer, appRootDirPath: string): Promise<void>;
/**
 * Creates a draft addition by writing new file content and creating a .sbswap.add marker.
 * This makes the new file visible to the build system while marking it as a draft addition.
 * If a draft addition already exists, this will just update the content.
 *
 * @param filePath - The absolute path where the new file should be created.
 * @param content - The content of the new file.
 * @param appRootDirPath - The absolute path to the app root directory.
 * @returns A promise that resolves when the draft addition is created.
 */
export declare function createDraftAdd(filePath: string, content: string | Buffer, appRootDirPath: string): Promise<void>;
/**
 * Creates a draft deletion by backing up the file content and removing it from the workspace.
 *
 * @param filePath - The absolute path to the file to delete.
 * @param appRootDirPath - The absolute path to the app root directory.
 * @returns A promise that resolves when the draft deletion is created.
 */
export declare function createDraftDelete(filePath: string, appRootDirPath: string): Promise<void>;
/**
 * Recursively checks if any draft files exist in the drafts directory.
 * Looks for .sbswap.edit, .sbswap.add, and .sbswap.delete marker files.
 *
 * @param appRootDirPath - The absolute path to the app root directory.
 * @returns A promise that resolves to true if any draft files are found, false otherwise.
 */
export declare function hasSwapFiles(appRootDirPath: string): Promise<boolean>;
/**
 * Discards all draft changes by restoring original files and removing draft additions.
 * - For .sbswap.edit files: copies them back to the original location
 * - For .sbswap.add markers: removes both the marker and the corresponding file
 *
 * @param appRootDirPath - The absolute path to the app root directory.
 * @returns A promise that resolves when all drafts have been discarded.
 */
export declare function discardAllDrafts(appRootDirPath: string): Promise<void>;
export declare function cleanUpDraftsDirectory(appRootDirPath: string): Promise<void>;
/**
 * Commits all draft changes by removing .sbswap.edit and .sbswap.add markers.
 * This leaves the current filesystem state as the committed state.
 *
 * @param appRootDirPath - The absolute path to the app root directory.
 * @returns A promise that resolves when all drafts have been committed.
 */
export declare function commitAllDrafts(appRootDirPath: string): Promise<void>;
/**
 * Gets information about all draft files in the drafts directory.
 *
 * @param appRootDirPath - The absolute path to the app root directory.
 * @returns A promise that resolves to information about draft files.
 */
export declare function getDraftInfo(appRootDirPath: string): Promise<{
    edits: string[];
    additions: string[];
    deletions: string[];
}>;
/**
 * Generates a git-like diff showing all draft changes.
 *
 * @param appRootDirPath - The absolute path to the app root directory.
 * @param specificPaths - An optional array of relative paths to limit the diff to.
 * @returns A promise that resolves to a git-like diff string.
 */
export declare function generateDraftDiff(appRootDirPath: string, specificPaths?: string[]): Promise<string>;
//# sourceMappingURL=draft-helpers.d.ts.map