import type { FileOperationResult } from "../core/config.js";
import type { ICopyStrategy, StrategyContext } from "./strategy.interface.js";
/** Copy one source into a destination that must not already exist. */
type ExclusiveCopyFile = (sourcePath: string, destPath: string, mode: number) => Promise<void>;
/**
 * Create-only strategy: Create file if not exists, never update
 * - Create if not exists
 * - Skip silently if exists (whether identical or different)
 */
export declare class CreateOnlyStrategy implements ICopyStrategy {
    private readonly copyFileExclusive;
    readonly name: "create-only";
    /**
     * Create a strategy backed by an atomic exclusive-copy primitive.
     *
     * @param copyFileExclusive - Injectable exclusive copy primitive for tests
     */
    constructor(copyFileExclusive?: ExclusiveCopyFile);
    /**
     * Apply create-only strategy: Create file if not exists, never update
     * @param sourcePath - Source file path
     * @param destPath - Destination file path
     * @param relativePath - Relative path for logging
     * @param context - Strategy context with config and callbacks
     * @returns Result of the create-only operation
     */
    apply(sourcePath: string, destPath: string, relativePath: string, context: StrategyContext): Promise<FileOperationResult>;
}
export {};
//# sourceMappingURL=create-only.d.ts.map