import { Construct, Token } from "@aws-cdk/cdk";
import { Action } from "./action";
/**
 * @link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html
 */
export declare class ArtifactAttribute extends Token {
    constructor(artifact: Artifact, attributeName: string);
}
/**
 * @link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html
 */
export declare class ArtifactGetParam extends Token {
    constructor(artifact: Artifact, jsonFile: string, keyName: string);
}
/**
 * An output artifact of an action. Artifacts can be used as input by some actions.
 */
export declare class Artifact extends Construct {
    readonly name: string;
    constructor(parent: Action, name: string);
    /**
     * Returns an ArtifactPath for a file within this artifact.
     * Output is in the form "<artifact-name>::<file-name>"
     * @param fileName The name of the file
     */
    subartifact(fileName: string): ArtifactPath;
    /**
     * The artifact attribute for the name of the S3 bucket where the artifact is stored.
     */
    readonly bucketName: ArtifactAttribute;
    /**
     * The artifact attribute for The name of the .zip file that contains the artifact that is
     * generated by AWS CodePipeline, such as 1ABCyZZ.zip.
     */
    readonly objectKey: ArtifactAttribute;
    /**
     * The artifact attribute of the Amazon Simple Storage Service (Amazon S3) URL of the artifact,
     * such as https://s3-us-west-2.amazonaws.com/artifactstorebucket-yivczw8jma0c/test/TemplateSo/1ABCyZZ.zip.
     */
    readonly url: ArtifactAttribute;
    /**
     * Returns a token for a value inside a JSON file within this artifact.
     * @param jsonFile The JSON file name.
     * @param keyName The hash key.
     */
    getParam(jsonFile: string, keyName: string): ArtifactGetParam;
    toString(): string;
}
/**
 * A specific file within an output artifact.
 *
 * The most common use case for this is specifying the template file
 * for a CloudFormation action.
 */
export declare class ArtifactPath {
    readonly artifact: Artifact;
    readonly fileName: string;
    constructor(artifact: Artifact, fileName: string);
    readonly location: string;
}
