import { ProjectOperationCredentials } from "@atomist/automation-client/lib/operations/common/ProjectOperationCredentials";
import { RemoteRepoRef } from "@atomist/automation-client/lib/operations/common/RepoId";
import { Project } from "@atomist/automation-client/lib/project/Project";
import { CodeTransform } from "../../api/registration/CodeTransform";
/**
 * Add the downloaded content to the given project
 * @param url url of the content. Must be publicly accessible
 * @param path
 */
export declare function copyFileFromUrl(url: string, path: string): CodeTransform;
export interface FileMapping {
    donorPath: string;
    recipientPath: string;
}
export interface FileGlobMapping {
    /**
     * See https://github.com/gulpjs/glob-stream for implementation details
     */
    globPatterns: string[];
    /**
     * This recipientPath will only be prefixed verbatim to any path returned from the globs.
     */
    recipientPath?: string;
}
/**
 * Take the specified files from the donor project
 * @param {RemoteRepoRef} donorProjectId
 * @param {FileMapping[]} fileMappings
 * @param {ProjectOperationCredentials} credentials
 * @return {SimpleProjectEditor}
 */
export declare function copyFilesFrom(donorProjectId: RemoteRepoRef, fileMappings: Array<FileMapping | string>, credentials: ProjectOperationCredentials): CodeTransform;
export declare function copyFiles(donorProject: Project, fileMappings: Array<FileMapping | string>): CodeTransform;
/**
 * Take the specified files from the donor project
 * @param {RemoteRepoRef} donorProjectId
 * @param {FileGlobMapping} fileGlobMapping - treated as globs as defined in Project.streamFiles
 * @return {SimpleProjectEditor}
 */
export declare function streamFilesFrom(donorProjectId: RemoteRepoRef, fileGlobMapping: FileGlobMapping): CodeTransform;
export declare function streamFiles(donorProject: Project, fileGlobMapping: FileGlobMapping): CodeTransform;
//# sourceMappingURL=fileCopy.d.ts.map