import * as codepipeline from "../../aws-codepipeline";
import * as iam from "../../aws-iam";
import * as sns from "../../aws-sns";
import { Construct } from 'constructs';
import { Action } from './action';
/**
 * (experimental) Construction properties of the {@link ManualApprovalAction}.
 *
 * @experimental
 */
export interface ManualApprovalActionProps extends codepipeline.CommonAwsActionProps {
    /**
     * (experimental) Optional SNS topic to send notifications to when an approval is pending.
     *
     * @experimental
     */
    readonly notificationTopic?: sns.ITopic;
    /**
     * (experimental) A list of email addresses to subscribe to notifications when this Action is pending approval.
     *
     * If this has been provided, but not `notificationTopic`,
     * a new Topic will be created.
     *
     * @experimental
     */
    readonly notifyEmails?: string[];
    /**
     * (experimental) Any additional information that you want to include in the notification email message.
     *
     * @experimental
     */
    readonly additionalInformation?: string;
    /**
     * (experimental) URL you want to provide to the reviewer as part of the approval request.
     *
     * @default - the approval request will not have an external link
     * @experimental
     */
    readonly externalEntityLink?: string;
}
/**
 * (experimental) Manual approval action.
 *
 * @experimental
 */
export declare class ManualApprovalAction extends Action {
    /**
     * The SNS Topic passed when constructing the Action.
     * If no Topic was passed, but `notifyEmails` were provided,
     * a new Topic will be created.
     */
    private _notificationTopic?;
    private readonly props;
    private stage?;
    /**
     * @experimental
     */
    constructor(props: ManualApprovalActionProps);
    /**
     * @experimental
     */
    get notificationTopic(): sns.ITopic | undefined;
    /**
     * (experimental) grant the provided principal the permissions to approve or reject this manual approval action.
     *
     * For more info see:
     * https://docs.aws.amazon.com/codepipeline/latest/userguide/approvals-iam-permissions.html
     *
     * @param grantable the grantable to attach the permissions to.
     * @experimental
     */
    grantManualApproval(grantable: iam.IGrantable): void;
    /**
     * (experimental) This is a renamed version of the {@link IAction.bind} method.
     *
     * @experimental
     */
    protected bound(scope: Construct, stage: codepipeline.IStage, options: codepipeline.ActionBindOptions): codepipeline.ActionConfig;
}
