/**
 *  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
 *  with the License. A copy of the License is located at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
 *  OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
 *  and limitations under the License.
 */
import { Parameter, Tag, Stack, UpdateStackCommandInput, UpdateStackCommandOutput } from '@aws-sdk/client-cloudformation';
export declare enum StackAction {
    CREATE = "Create",
    UPDATE = "Update",
    UPGRADE = "Upgrade",
    DELETE = "Delete",
    DESCRIBE = "Describe",
    CALLBACK = "Callback",
    END = "End"
}
export interface StackEvent {
    readonly Action: StackAction;
    readonly Input: StackInput;
    readonly ExecutionName: string;
    readonly Result?: Stack;
}
interface StackInput {
    readonly Region: string;
    readonly StackName: string;
    readonly TemplateURL: string;
    readonly Parameters: Parameter[];
    readonly Tags?: Tag[];
}
export declare const handler: (event: StackEvent, _context: any) => Promise<any>;
export declare const createStack: (event: StackEvent) => Promise<StackEvent>;
export declare const updateStack: (event: StackEvent) => Promise<StackEvent>;
export declare const upgradeStack: (event: StackEvent) => Promise<StackEvent>;
export declare const deleteStack: (event: StackEvent) => Promise<StackEvent>;
export declare const describeStack: (event: StackEvent) => Promise<StackEvent>;
export declare const describe: (region: string, stackName: string) => Promise<Stack | undefined>;
export declare const callback: (event: StackEvent) => Promise<StackEvent>;
export declare const doUpdate: (region: string, input: UpdateStackCommandInput) => Promise<UpdateStackCommandOutput>;
export {};
