## API Report File for "@aws-amplify/amplify-cli-core"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

/// <reference types="node" />

import Ajv from 'ajv';
import { ApiKeyConfig } from '@aws-amplify/graphql-transformer-interfaces';
import { ARN } from '@aws-sdk/util-arn-parser';
import { BuildType } from '@aws-amplify/amplify-function-plugin-interface';
import * as cdk from 'aws-cdk-lib';
import { ChildProcess } from 'child_process';
import * as execa from 'execa';
import opn from 'open';
import { Ora } from 'ora';
import { SemVer } from 'semver';
import { Template as Template_2 } from 'cloudform-types';

// @public (undocumented)
export type $TSAny = any;

// @public (undocumented)
export type $TSContext = {
    amplify: AmplifyToolkit;
    print: IContextPrint;
    migrationInfo: MigrationInfo;
    projectHasMobileHubResources: boolean;
    prompt: $TSAny;
    exeInfo: EnvironmentInfo & InputParameters & PinpointInfo & ProjectInfo;
    input: CommandLineInput;
    parameters: ContextParameters;
    usageData: IUsageData;
    runtime: Runtime;
    pluginPlatform: IPluginPlatform;
    newUserInfo?: string;
    filesystem: IContextFilesystem;
    template: IContextTemplate;
};

// @public (undocumented)
export type $TSCopyJob = $TSAny;

// @public (undocumented)
export type $TSMeta = $TSAny;

// @public (undocumented)
export type $TSObject = Record<string, $TSAny>;

// @public (undocumented)
export type $TSTeamProviderInfo = $TSAny;

// @public (undocumented)
export const AMPLIFY_DOCS_URL = "https://docs.amplify.aws";

// @public (undocumented)
export const AMPLIFY_SUPPORT_DOCS: {
    CLI_PROJECT_TROUBLESHOOTING: {
        name: string;
        url: string;
    };
    CLI_GRAPHQL_TROUBLESHOOTING: {
        name: string;
        url: string;
    };
    CLI_EXTENSIBILITY: {
        name: string;
        url: string;
    };
    AWS_CUSTOM_DOMAIN_TROUBLESHOOTING: {
        name: string;
        url: string;
    };
    AMPLIFY_IAM_TROUBLESHOOTING_URL: {
        name: string;
        url: string;
    };
    AMPLIFY_DATASTORE: {
        name: string;
        url: string;
    };
    AWS_CLOUDFORMATION_DRIFT: {
        name: string;
        url: string;
    };
    AWS_KNOWLEDGE_CENTER: {
        name: string;
        url: string;
    };
};

// @public (undocumented)
export const AmplifyCategories: {
    STORAGE: string;
    API: string;
    AUTH: string;
    FUNCTION: string;
    HOSTING: string;
    INTERACTIONS: string;
    NOTIFICATIONS: string;
    PREDICTIONS: string;
    ANALYTICS: string;
    CUSTOM: string;
};

// @public (undocumented)
export abstract class AmplifyCategoryTransform {
    constructor(resourceName: string);
    // (undocumented)
    abstract applyOverride(): Promise<void>;
    // (undocumented)
    resourceName: string;
    // (undocumented)
    abstract saveBuildFiles(context: $TSContext, template: Template): Promise<void>;
    // (undocumented)
    abstract transform(context: $TSContext): Promise<Template>;
}

// @public (undocumented)
export class AmplifyError extends AmplifyException {
    constructor(name: AmplifyErrorType, options: AmplifyExceptionOptions, downstreamException?: Error);
}

// @public (undocumented)
export type AmplifyErrorType = 'AmplifyStudioError' | 'AmplifyStudioLoginError' | 'AmplifyStudioNotEnabledError' | 'ApiCategorySchemaNotFoundError' | 'APIRateExceededError' | 'AuthImportError' | 'BackendConfigValidationError' | 'BucketAlreadyExistsError' | 'BucketNotFoundError' | 'CategoryNotEnabledError' | 'CloudFormationTemplateError' | 'CommandNotSupportedError' | 'ConfigurationError' | 'CustomPoliciesFormatError' | 'DebugConfigValueNotSetError' | 'DeploymentError' | 'DeploymentInProgressError' | 'DestructiveMigrationError' | 'DiagnoseReportUploadError' | 'DirectoryAlreadyExistsError' | 'DirectoryError' | 'DuplicateLogicalIdError' | 'EnvironmentConfigurationError' | 'EnvironmentNameError' | 'EnvironmentNotInitializedError' | 'ExportError' | 'FeatureFlagsValidationError' | 'FileSystemPermissionsError' | 'FrameworkNotSupportedError' | 'FunctionTooLargeError' | 'GraphQLError' | 'InputValidationError' | 'InvalidAmplifyAppIdError' | 'InvalidCustomResourceError' | 'InvalidDirectiveError' | 'InvalidGSIMigrationError' | 'InvalidMigrationError' | 'InvalidOverrideError' | 'InvalidStackError' | 'InvalidTransformerError' | 'IterativeRollbackError' | 'LambdaFunctionInvokeError' | 'LambdaLayerDeleteError' | 'MigrationError' | 'MissingAmplifyMetaFileError' | 'MissingExpectedParameterError' | 'MissingOverridesInstallationRequirementsError' | 'MockProcessError' | 'ModelgenError' | 'NestedProjectInitError' | 'NotImplementedError' | 'NoUpdateBackendError' | 'OpenSslCertificateError' | 'PackagingLambdaFunctionError' | 'ParameterNotFoundError' | 'PermissionsError' | 'PluginMethodNotFoundError' | 'PluginNotFoundError' | 'PluginPolicyAddError' | 'ProfileConfigurationError' | 'ProjectAppIdResolveError' | 'ProjectInitError' | 'ProjectNotFoundError' | 'ProjectNotInitializedError' | 'PushResourcesError' | 'RegionNotAvailableError' | 'RemoveNotificationAppError' | 'ResourceAlreadyExistsError' | 'ResourceCountLimitExceedError' | 'ResourceDoesNotExistError' | 'ResourceInUseError' | 'ResourceNotReadyError' | 'ResourceRemoveError' | 'SchemaNotFoundError' | 'SchemaValidationError' | 'ScriptingFeaturesDisabledError' | 'SearchableMockProcessError' | 'SearchableMockUnavailablePortError' | 'SearchableMockUnsupportedPlatformError' | 'ShellCommandExecutionError' | 'StackNotFoundError' | 'StackStateError' | 'StorageImportError' | 'TransformerContractError' | 'UnknownDirectiveError' | 'UnsupportedLockFileTypeError' | 'UserInputError';

// @public (undocumented)
export enum AmplifyEvent {
    // (undocumented)
    InternalOnlyPostEnvRemove = "InternalOnlyPostEnvRemove",
    // (undocumented)
    PostCodegenModels = "PostCodegenModels",
    // (undocumented)
    PostEnvAdd = "PostEnvAdd",
    // (undocumented)
    PostInit = "PostInit",
    // (undocumented)
    PostPull = "PostPull",
    // (undocumented)
    PostPush = "PostPush",
    // (undocumented)
    PreCodegenModels = "PreCodegenModels",
    // (undocumented)
    PreExport = "PreExport",
    // (undocumented)
    PreInit = "PreInit",
    // (undocumented)
    PrePull = "PrePull",
    // (undocumented)
    PrePush = "PrePush"
}

// @public (undocumented)
export interface AmplifyEventArgs<T extends AmplifyEvent> {
    // (undocumented)
    data?: AmplifyEventData[T];
    // (undocumented)
    event: T;
}

// @public (undocumented)
export interface AmplifyEventData {
    // (undocumented)
    [AmplifyEvent.InternalOnlyPostEnvRemove]: AmplifyInternalOnlyPostEnvRemoveEventData;
    // (undocumented)
    [AmplifyEvent.PostCodegenModels]: NoArgsAmplifyEventData;
    // (undocumented)
    [AmplifyEvent.PostEnvAdd]: AmplifyPostEnvAddEventData;
    // (undocumented)
    [AmplifyEvent.PostInit]: NoArgsAmplifyEventData;
    // (undocumented)
    [AmplifyEvent.PostPull]: NoArgsAmplifyEventData;
    // (undocumented)
    [AmplifyEvent.PostPush]: NoArgsAmplifyEventData;
    // (undocumented)
    [AmplifyEvent.PreCodegenModels]: NoArgsAmplifyEventData;
    // (undocumented)
    [AmplifyEvent.PreExport]: NoArgsAmplifyEventData;
    // (undocumented)
    [AmplifyEvent.PreInit]: NoArgsAmplifyEventData;
    // (undocumented)
    [AmplifyEvent.PrePull]: NoArgsAmplifyEventData;
    // (undocumented)
    [AmplifyEvent.PrePush]: NoArgsAmplifyEventData;
}

// @public (undocumented)
export abstract class AmplifyException extends Error {
    constructor(name: AmplifyExceptionType, classification: AmplifyExceptionClassification, options: AmplifyExceptionOptions, downstreamException?: Error | undefined);
    // (undocumented)
    readonly classification: AmplifyExceptionClassification;
    // (undocumented)
    readonly code?: string;
    // (undocumented)
    readonly details?: string;
    // (undocumented)
    readonly downstreamException?: Error | undefined;
    // (undocumented)
    readonly link?: string;
    // (undocumented)
    readonly message: string;
    // (undocumented)
    readonly name: AmplifyExceptionType;
    // (undocumented)
    readonly options: AmplifyExceptionOptions;
    // (undocumented)
    readonly resolution?: string;
    // (undocumented)
    toObject: () => object;
}

// @public (undocumented)
export type AmplifyExceptionClassification = 'FAULT' | 'ERROR';

// @public (undocumented)
export type AmplifyExceptionOptions = {
    message: string;
    details?: string;
    resolution?: string;
    link?: string;
    code?: string;
};

// @public (undocumented)
export type AmplifyExceptionType = AmplifyErrorType | AmplifyFaultType;

// @public (undocumented)
export class AmplifyFault extends AmplifyException {
    constructor(name: AmplifyFaultType, options: AmplifyExceptionOptions, downstreamException?: Error);
}

// @public (undocumented)
export type AmplifyFaultType = 'AmplifyBackupFault' | 'AnalyticsCategoryFault' | 'AuthCategoryFault' | 'BackendDeleteFault' | 'BackendPullFault' | 'CloudFormationTemplateFault' | 'ConfigurationFault' | 'ConfigurationFault' | 'DeploymentFault' | 'DeploymentStateUploadFault' | 'FileNotFoundFault' | 'GraphQLTransformerV1Fault' | 'LockFileNotFoundFault' | 'LockFileParsingFault' | 'MockProcessFault' | 'NotificationsChannelAPNSFault' | 'NotificationsChannelEmailFault' | 'NotificationsChannelFCMFault' | 'NotificationsChannelInAppMessagingFault' | 'NotificationsChannelSmsFault' | 'NotImplementedFault' | 'ParameterDownloadFault' | 'ParameterUploadFault' | 'PluginNotLoadedFault' | 'ProjectDeleteFault' | 'ParametersDeleteFault' | 'ProjectInitFault' | 'PullBackendFault' | 'PushResourcesFault' | 'ResourceAddFault' | 'ResourceExportFault' | 'ResourceNotFoundFault' | 'ResourceNotReadyFault' | 'ResourceRemoveFault' | 'RootStackNotFoundFault' | 'ServiceCallFault' | 'SnsSandboxModeCheckFault' | 'TimeoutFault' | 'TriggerUploadFault' | 'UnexpectedS3Fault' | 'UnknownFault' | 'UnknownNodeJSFault' | 'ZipExtractFault';

// @public (undocumented)
export enum AmplifyFrontend {
    // (undocumented)
    android = "android",
    // (undocumented)
    flutter = "flutter",
    // (undocumented)
    ios = "ios",
    // (undocumented)
    javascript = "javascript"
}

// @public (undocumented)
export interface AmplifyInternalOnlyPostEnvRemoveEventData {
    // (undocumented)
    envName: string;
}

// @public (undocumented)
export class AmplifyNodePkgDetector {
    // (undocumented)
    detectAffectedDirectDependencies: (dependencyToSearch: string) => Array<DetectedDependency> | [];
    // (undocumented)
    static getInstance: (amplifyDetectorProps: AmplifyNodePkgDetectorProps) => Promise<AmplifyNodePkgDetector>;
}

// @public (undocumented)
export type AmplifyNodePkgDetectorProps = {
    projectRoot: string;
};

// @public (undocumented)
export interface AmplifyPostEnvAddEventData {
    // (undocumented)
    newEnvName: string;
    // (undocumented)
    prevEnvName: string;
}

// @public (undocumented)
export interface AmplifyProjectConfig {
    // (undocumented)
    frontend: AmplifyFrontend;
    // (undocumented)
    projectName: string;
    // (undocumented)
    providers: string[];
    // (undocumented)
    version: string;
}

// @public (undocumented)
export interface AmplifyStackTemplate {
    // (undocumented)
    addCfnCondition: (props: cdk.CfnConditionProps, logicalId: string) => void;
    // (undocumented)
    addCfnMapping: (props: cdk.CfnMappingProps, logicalId: string) => void;
    // (undocumented)
    addCfnOutput: (props: cdk.CfnOutputProps, logicalId: string) => void;
    // (undocumented)
    addCfnParameter: (props: cdk.CfnParameterProps, logicalId: string) => void;
    // (undocumented)
    getCfnCondition: (logicalId: string) => cdk.CfnCondition;
    // (undocumented)
    getCfnMapping: (logicalId: string) => cdk.CfnMapping;
    // (undocumented)
    getCfnOutput: (logicalId: string) => cdk.CfnOutput;
    // (undocumented)
    getCfnParameter: (logicalId: string) => cdk.CfnParameter;
}

// @public (undocumented)
export const AmplifySupportedService: {
    APIGW: string;
    APPSYNC: string;
    S3: string;
    DYNAMODB: string;
    COGNITO: string;
    COGNITOUSERPOOLGROUPS: string;
    LAMBDA: string;
    LAMBDA_LAYER: string;
    PINPOINT: string;
    KINESIS: string;
};

// @public (undocumented)
export class AngularConfigNotFoundError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
export class ApiCategoryFacade {
    // (undocumented)
    static getDirectiveDefinitions(context: $TSContext, resourceDir: string): Promise<string>;
    // (undocumented)
    static getTransformerVersion(context: $TSContext): Promise<number>;
    // (undocumented)
    static transformGraphQLSchema(context: $TSContext, options: $TSAny): Promise<$TSAny | undefined>;
}

// @public (undocumented)
export function attachExtensions(context: $TSContext): void;

// @public (undocumented)
export function attachPrint(context: $TSContext): void;

// @public (undocumented)
export const AWS_AMPLIFY_DEFAULT_BANNER_URL = "https://aws-amplify.github.io/amplify-cli/banner-message.json";

// @public (undocumented)
export const AWS_DOCS_URL = "https://docs.aws.amazon.com/";

// @public (undocumented)
export const AWS_PREMIUM_SUPPORT_URL = "https://aws.amazon.com/premiumsupport";

// @public (undocumented)
export class BannerMessage {
    // (undocumented)
    static getMessage: (messageId: string) => Promise<string | undefined>;
    // (undocumented)
    getMessages: (messageId: string) => Promise<string | undefined>;
    // (undocumented)
    static initialize: (cliVersion: string) => BannerMessage;
}

// @public (undocumented)
export function blue(message: string): void;

// @public (undocumented)
export type BooleanFeatureFlag = {
    type: 'boolean';
    name: string;
    defaultValueForExistingProjects: boolean;
    defaultValueForNewProjects: boolean;
};

// @public (undocumented)
export const buildOverrideDir: (cwd: string, destDirPath: string) => Promise<boolean>;

// @public (undocumented)
export abstract class CategoryInputState {
    constructor(resourceName: string);
    // (undocumented)
    abstract getCLIInputPayload(): $TSAny;
    // (undocumented)
    abstract isCLIInputsValid(props: $TSAny): void;
    // (undocumented)
    _resourceName: string;
    // (undocumented)
    abstract saveCLIInputPayload(props: $TSAny): void;
}

// @public (undocumented)
export type CategoryName = string;

// @public (undocumented)
export enum CFNTemplateFormat {
    // (undocumented)
    JSON = "json",
    // (undocumented)
    YAML = "yaml"
}

// @public (undocumented)
export interface CLIContext {
    // (undocumented)
    getEnvInfo: () => $TSAny;
}

// @public (undocumented)
export class CLIContextEnvironmentProvider implements CLIEnvironmentProvider {
    // Warning: (ae-forgotten-export) The symbol "EnvInfoProvider" needs to be exported by the entry point index.d.ts
    constructor(context: EnvInfoProvider);
    // (undocumented)
    getCurrentEnvName(): string;
}

// @public (undocumented)
export interface CLIEnvironmentProvider {
    // (undocumented)
    getCurrentEnvName(): string;
}

// @public (undocumented)
export type CLIGlobalFlags = {
    version?: boolean;
    help?: boolean;
    yes?: boolean;
};

// @public (undocumented)
export class CLIInputSchemaGenerator {
    constructor(typeDefs: TypeDef[]);
    // (undocumented)
    generateJSONSchemas(): string[];
    // (undocumented)
    OVERWRITE_SCHEMA_FLAG: string;
    // (undocumented)
    SCHEMA_FILES_ROOT: string;
    // (undocumented)
    TYPES_SRC_ROOT: string;
}

// @public (undocumented)
export class CLIInputSchemaValidator {
    constructor(context: $TSContext, service: string, category: string, schemaFileName: string);
    // (undocumented)
    _ajv: Ajv.Ajv;
    // (undocumented)
    _category: string;
    // (undocumented)
    _context: $TSContext;
    // (undocumented)
    getUserInputSchema(): Promise<any>;
    // (undocumented)
    _schemaFileName: string;
    // (undocumented)
    _service: string;
    // (undocumented)
    validateInput(userInput: string): Promise<boolean>;
}

// @public (undocumented)
export interface CLIParams {
    // (undocumented)
    cliCommand: string;
    // (undocumented)
    cliOptions: Record<string, $TSAny>;
    // (undocumented)
    cliSubcommands: string[] | undefined;
}

// @public (undocumented)
export const CLISubCommands: {
    ADD: string;
    PUSH: string;
    PULL: string;
    REMOVE: string;
    UPDATE: string;
    CONSOLE: string;
    IMPORT: string;
};

// @public (undocumented)
export enum CLISubCommandType {
    // (undocumented)
    ADD = "add",
    // (undocumented)
    CONSOLE = "console",
    // (undocumented)
    IMPORT = "import",
    // (undocumented)
    MIGRATE = "migrate",
    // (undocumented)
    OVERRIDE = "override",
    // (undocumented)
    PULL = "pull",
    // (undocumented)
    PUSH = "push",
    // (undocumented)
    REMOVE = "remove",
    // (undocumented)
    UPDATE = "update"
}

// @public (undocumented)
export class CloudformationProviderFacade {
    // (undocumented)
    static getApiKeyConfig(context: $TSContext): Promise<ApiKeyConfig>;
    // (undocumented)
    static hashDirectory(context: $TSContext, directory: string): Promise<string>;
    // (undocumented)
    static isAmplifyAdminApp(context: $TSContext, appId: string): Promise<{
        isAdminApp: boolean;
        region: string;
        userPoolID: string;
    }>;
    // (undocumented)
    static prePushCfnTemplateModifier(context: $TSContext, template: Template_2): Promise<(template: Template_2) => Promise<void>>;
}

// @public (undocumented)
export type CommandFlagInfo = {
    short: string;
    long: string;
    flagDescription: string;
};

// @public (undocumented)
export type CommandInfo = {
    command: string;
    commandDescription: string;
    commandUsage: string;
    commandFlags: Array<CommandFlagInfo>;
    subCommands: Array<SubCommandInfo>;
};

// @public (undocumented)
export type CommandLineInput = {
    argv: Array<string>;
    plugin?: string;
    command: string;
    subCommands?: string[];
    options?: CLIGlobalFlags & Record<string, $TSAny>;
};

// @public (undocumented)
export const commandsInfo: Array<CommandInfo>;

// @public (undocumented)
export class ConfigurationError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
export const constants: {
    HELP: string;
    HELP_SHORT: string;
    VERSION: string;
    VERSION_SHORT: string;
    VERBOSE: string;
    YES: string;
    YES_SHORT: string;
    PLUGIN_DEFAULT_COMMAND: string;
    MANIFEST_FILE_NAME: string;
    PACKAGEJSON_FILE_NAME: string;
    PLUGINS_FILE_NAME: string;
    CORE: string;
    CODEGEN: string;
    AMPLIFY: string;
    DOT_AMPLIFY_DIR_NAME: string;
    DEFAULT_PROVIDER: string;
    AMPLIFY_PREFIX: string;
    LOCAL_NODE_MODULES: string;
    PARENT_DIRECTORY: string;
    GLOBAL_NODE_MODULES: string;
    PACKAGED_NODE_MODULES: string;
    DEV_NODE_MODULES: string;
    EXECUTE_AMPLIFY_COMMAND: string;
    EXECUTE_AMPLIFY_HEADLESS_COMMAND: string;
    HANDLE_AMPLIFY_EVENT: string;
    LOG_FILENAME: string;
};

// @public (undocumented)
export interface ContextParameters extends Pick<CommandLineInput, 'argv' | 'plugin' | 'command' | 'options'> {
    // (undocumented)
    array: CommandLineInput['subCommands'];
    // (undocumented)
    first?: string;
    // (undocumented)
    raw: CommandLineInput['argv'];
    // (undocumented)
    second?: string;
    // (undocumented)
    third?: string;
}

// @public (undocumented)
export const convertNumBytes: (numBytes: number) => {
    toKB: () => number;
    toMB: () => number;
};

// @public (undocumented)
export function createDefaultCustomPoliciesFile(categoryName: string, resourceName: string): void;

// @public (undocumented)
export type CustomIAMPolicies = CustomIAMPolicy[];

// @public (undocumented)
export const CustomIAMPoliciesSchema: {
    type: string;
    minItems: number;
    items: {
        type: string;
        properties: {
            Action: {
                type: string;
                items: {
                    type: string;
                };
                minItems: number;
                nullable: boolean;
            };
            Resource: {
                type: string;
                anyOf: ({
                    contains: {
                        type: string;
                        additionalProperties?: undefined;
                    };
                } | {
                    contains: {
                        type: string;
                        additionalProperties: boolean;
                    };
                })[];
                minItems: number;
                nullable: boolean;
            };
        };
        optionalProperties: {
            Effect: {
                type: string;
                enum: string[];
                default: string;
            };
        };
        required: string[];
        additionalProperties: boolean;
    };
    additionalProperties: boolean;
};

// @public (undocumented)
export type CustomIAMPolicy = {
    Action: string[];
    Effect?: string;
    Resource: (string | $TSObject)[];
};

// @public (undocumented)
export class CustomPoliciesFormatError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
export type DataParameter = {
    amplify: {
        version?: string;
        environment?: string;
        command?: string;
        subCommand?: string;
        argv?: string[];
    };
};

// @public (undocumented)
export function debug(message: string, title?: string): void;

// @public (undocumented)
export class DebugConfigValueNotSetError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
export const defaultSupportedExt: HookExtensions;

// @public (undocumented)
export type DeploymentSecrets = {
    appSecrets: Array<{
        rootStackId: string;
        environments: {
            [env: string]: {
                [category: string]: {
                    [resourceName: string]: {
                        [key: string]: string;
                    };
                };
            };
        };
    }>;
};

// @public (undocumented)
export type DeploymentState = {
    version: '1';
    startedAt?: string;
    finishedAt?: string;
    status: DeploymentStatus;
    currentStepIndex: number;
    steps: DeploymentStepState[];
};

// @public (undocumented)
export enum DeploymentStatus {
    // (undocumented)
    'DEPLOYED' = "DEPLOYED",
    // (undocumented)
    'DEPLOYING' = "DEPLOYING",
    // (undocumented)
    'FAILED' = "FAILED",
    // (undocumented)
    'IDLE' = "IDLE",
    // (undocumented)
    'ROLLED_BACK' = "ROLLED_BACK",
    // (undocumented)
    'ROLLING_BACK' = "ROLLING_BACK"
}

// @public (undocumented)
export type DeploymentStepState = {
    status: DeploymentStepStatus;
    previousMetaKey?: string;
};

// @public (undocumented)
export enum DeploymentStepStatus {
    // (undocumented)
    'DEPLOYED' = "DEPLOYED",
    // (undocumented)
    'DEPLOYING' = "DEPLOYING",
    // (undocumented)
    'ROLLED_BACK' = "ROLLED_BACK",
    // (undocumented)
    'ROLLING_BACK' = "ROLLING_BACK",
    // (undocumented)
    'WAITING_FOR_DEPLOYMENT' = "WAITING_FOR_DEPLOYMENT",
    // (undocumented)
    'WAITING_FOR_ROLLBACK' = "WAITING_FOR_ROLLBACK",
    // (undocumented)
    'WAITING_FOR_TABLE_TO_BE_READY' = "WAITING_FOR_TABLE_TO_BE_READY"
}

// @public (undocumented)
export type DetectedDependency = {
    packageName?: string;
    dependentPackage?: {
        name: string;
        version: string;
    };
};

// @public (undocumented)
export class DiagnoseReportUploadError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
type EnvironmentInfo = {
    existingLocalEnvInfo?: LocalEnvInfo;
    isNewEnv?: boolean;
    sourceEnvName?: string;
};

// @public (undocumented)
export class EnvVarFormatError extends Error {
    constructor(variableName: string);
}

// @public (undocumented)
export function error(message: string): void;

// @public (undocumented)
export type ErrorParameter = {
    message: string;
    stack: string;
};

// @public (undocumented)
export type EventPrefix = 'pre' | 'post';

// @public (undocumented)
export const executeHooks: (hooksMetadata: HooksMeta) => Promise<void>;

// @public (undocumented)
export const execWithOutputAsString: (command: string, opts?: execa.Options) => Promise<string>;

declare namespace ExeInfo {
    export {
        EnvironmentInfo,
        InputParameters,
        PinpointInfo,
        ProjectInfo
    }
}
export { ExeInfo }

// @public (undocumented)
export const exitOnNextTick: (code: number) => void;

// @public (undocumented)
export class ExportedStackNotFoundError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
export class ExportedStackNotInValidStateError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
export class ExportPathValidationError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
export const extract: any;

// @public (undocumented)
export function fancy(message?: string): void;

// @public (undocumented)
export type FeatureFlagConfiguration = {
    project: FeatureFlagsEntry;
    environments: Record<string, FeatureFlagsEntry>;
};

// @public (undocumented)
export type FeatureFlagRegistration = NumberFeatureFlag | BooleanFeatureFlag;

// @public (undocumented)
export class FeatureFlags {
    // (undocumented)
    static ensureDefaultFeatureFlags: (newProject: boolean) => Promise<void>;
    // (undocumented)
    static ensureFeatureFlag: (featureFlagSection: string, featureFlagName: string) => Promise<void>;
    // (undocumented)
    static getBoolean: (flagName: string) => boolean;
    // (undocumented)
    static getEffectiveFlags: () => Readonly<FeatureFlagsEntry>;
    // (undocumented)
    static getExistingProjectDefaults: () => Readonly<FeatureFlagsEntry>;
    // (undocumented)
    static getNewProjectDefaults: () => Readonly<FeatureFlagsEntry>;
    // (undocumented)
    static getNumber: (flagName: string) => number;
    // (undocumented)
    static initialize: (environmentProvider: CLIEnvironmentProvider, useNewDefaults?: boolean, additionalFlags?: Record<string, FeatureFlagRegistration[]>) => Promise<void>;
    // (undocumented)
    static isInitialized: () => boolean;
    // (undocumented)
    static reloadValues: () => Promise<void>;
    // (undocumented)
    static removeFeatureFlagConfiguration: (removeProjectConfiguration: boolean, envNames: string[]) => Promise<void>;
}

// @public (undocumented)
export type FeatureFlagsEntry = Record<string, Record<string, $TSAny>>;

// @public (undocumented)
export type FeatureFlagType = 'boolean' | 'number';

// @public (undocumented)
export interface FlowRecorder {
    // (undocumented)
    assignProjectIdentifier: (envName?: string) => string | undefined;
    // (undocumented)
    getFlowReport: () => IFlowReport | Record<string, never>;
    // (undocumented)
    pushHeadlessFlow: (headlessFlowDataString: string, input: CommandLineInput) => void;
    // (undocumented)
    pushInteractiveFlow: (prompt: string, input: unknown) => void;
    // (undocumented)
    setIsHeadless: (headless: boolean) => void;
}

// @public (undocumented)
export enum FromStartupTimedCodePaths {
    // (undocumented)
    PLATFORM_STARTUP = "platformStartup",
    // (undocumented)
    TOTAL_DURATION = "totalDuration"
}

// @public (undocumented)
export type FunctionBreadcrumb = {
    pluginId: string;
    functionRuntime: string;
    defaultEditorFile: string;
    useLegacyBuild: true;
};

// @public (undocumented)
export const generateAmplifyOverrideProjectBuildFiles: (backendDir: string, srcResourceDirPath: string) => void;

// @public (undocumented)
export function generateCustomPoliciesInTemplate(template: Template_2, resourceName: string, service: string, category: string): Template_2;

// @public (undocumented)
export const generateOverrideSkeleton: (context: $TSContext, srcResourceDirPath: string, destDirPath: string) => Promise<void>;

// @public (undocumented)
export const generateTsConfigforProject: (srcResourceDirPath: string, destDirPath: string) => void;

// @public (undocumented)
export function getAmplifyResourceByCategories(category: string): string[];

// @public (undocumented)
export function getFolderSize(filePaths: string | string[]): Promise<number>;

// @public (undocumented)
export function getGraphQLTransformerAuthDocLink(version: number): string;

// @public (undocumented)
export function getGraphQLTransformerAuthSubscriptionsDocLink(version: number): string;

// @public (undocumented)
export function getGraphQLTransformerFunctionDocLink(version: number): string;

// @public (undocumented)
export function getGraphQLTransformerOpenSearchDocLink(version: number): string;

// @public (undocumented)
export function getGraphQLTransformerOpenSearchProductionDocLink(version: number): string;

// @public (undocumented)
export function getMigrateResourceMessageForOverride(categoryName: string, resourceName: string, isUpdate?: boolean): string;

// @public (undocumented)
export type GetOptions<T> = {
    throwIfNotExist?: boolean;
    preserveComments?: boolean;
    default?: T;
};

// @public (undocumented)
export type GetPackageAssetPaths = () => Promise<string[]>;

// @public (undocumented)
export const getPackageManager: (rootPath?: string) => Promise<PackageManager | null>;

// @public (undocumented)
export const getPackageManagerByType: (packageManagerType: PackageManagerType) => PackageManager;

// @public (undocumented)
export const getPermissionsBoundaryArn: (env?: string) => string | undefined;

// @public (undocumented)
export function green(message: string): void;

// @public (undocumented)
export type HookEvent = {
    command: string;
    subCommand?: string;
    argv: string[];
    eventPrefix?: EventPrefix;
    forcePush: boolean;
};

// @public (undocumented)
export type HookExtensions = Record<string, {
    runtime: string;
    runtime_options?: string[];
    runtime_windows?: string;
}>;

// @public (undocumented)
export type HookFileMeta = {
    baseName: string;
    extension?: string;
    filePath?: string;
    fileName: string;
};

// @public (undocumented)
export const hookFileSeparator = "-";

// @public (undocumented)
export type HooksConfig = {
    extensions?: HookExtensions;
    ignore?: string[];
};

// @public (undocumented)
export class HooksMeta {
    // (undocumented)
    getDataParameter(): DataParameter;
    // (undocumented)
    getErrorParameter(): ErrorParameter | undefined;
    // (undocumented)
    getHookEvent(): HookEvent;
    // (undocumented)
    static getInstance: (input?: CommandLineInput, eventPrefix?: EventPrefix, errorParameter?: ErrorParameter) => HooksMeta;
    // (undocumented)
    mergeDataParameter(newDataParameter: DataParameter): void;
    // (undocumented)
    setAmplifyVersion(amplifyVersion: string): void;
    // (undocumented)
    setEnvironmentName(envName?: string): void;
    // (undocumented)
    setErrorParameter(errorParameter?: ErrorParameter): void;
    // (undocumented)
    setEventCommand(command: string): void;
    // (undocumented)
    setEventPrefix(prefix?: EventPrefix): void;
    // (undocumented)
    setEventSubCommand(subCommand?: string): void;
    // (undocumented)
    setHookEventFromInput(input?: CommandLineInput): void;
}

// @public (undocumented)
export type HooksNoun = 'notifications' | 'analytics' | 'api' | 'auth' | 'function' | 'hosting' | 'interactions' | 'predictions' | 'storage' | 'codegen' | 'env';

// @public (undocumented)
export type HooksVerb = 'add' | 'update' | 'remove' | 'push' | 'pull' | 'publish' | 'delete' | 'checkout' | 'list' | 'get' | 'mock' | 'build' | 'status' | 'import' | 'gqlcompile' | 'addgraphqldatasource' | 'statements' | 'types';

// Warning: (ae-forgotten-export) The symbol "TagVariables" needs to be exported by the entry point index.d.ts
//
// @public (undocumented)
export function HydrateTags(tags: Tag[], tagVariables: TagVariables, skipProjectEnv?: boolean): Tag[];

// @public (undocumented)
export interface IAmplifyResource {
    // (undocumented)
    category: string;
    // (undocumented)
    id?: string;
    // (undocumented)
    region?: string;
    // (undocumented)
    resourceName: string;
    // (undocumented)
    service: string;
}

// @public (undocumented)
export interface IAnalyticsResource extends IAmplifyResource {
    // (undocumented)
    id?: string;
    // (undocumented)
    output?: $TSAny;
    // (undocumented)
    region?: string;
}

// @public (undocumented)
export type IAuthResource = IAmplifyResource;

// @public (undocumented)
export type IContextFilesystem = {
    remove: (targetPath: string) => void;
    read: (targetPath: string, encoding?: BufferEncoding) => $TSAny;
    write: (targetPath: string, data: string | NodeJS.ArrayBufferView) => void;
    exists: (targetPath: string) => boolean;
    isFile: (targetPath: string) => boolean;
    path: (...pathParts: string[]) => string;
};

// @public (undocumented)
export type IContextPrint = {
    info: (message: string) => void;
    fancy: (message?: string) => void;
    warning: (message: string) => void;
    error: (message: string) => void;
    success: (message: string) => void;
    table: (data: string[][], options?: {
        format?: 'markdown' | 'lean';
    }) => void;
    debug: (message: string) => void;
    green: (message: string) => void;
    yellow: (message: string) => void;
    red: (message: string) => void;
    blue: (message: string) => void;
};

// @public (undocumented)
export type IContextTemplate = {
    generate: (opts: {
        template: string;
        target: string;
        props: $TSObject;
        directory: string;
    }) => Promise<string>;
};

// @public (undocumented)
export interface IDeploymentStateManager {
    // (undocumented)
    advanceStep: () => Promise<void>;
    // (undocumented)
    deleteDeploymentStateFile: () => Promise<void>;
    // (undocumented)
    failDeployment: () => Promise<void>;
    // (undocumented)
    getStatus: () => DeploymentState | undefined;
    // (undocumented)
    isDeploymentFinished: () => boolean;
    // (undocumented)
    isDeploymentInProgress: () => boolean;
    // (undocumented)
    startCurrentStep: (parameters?: StepStatusParameters) => Promise<void>;
    // (undocumented)
    startDeployment: (steps: DeploymentStepState[]) => Promise<boolean>;
    // (undocumented)
    startRollback: () => Promise<void>;
    // (undocumented)
    updateCurrentStepStatus: (status: DeploymentStepStatus) => Promise<void>;
    // (undocumented)
    updateStatus: (status: DeploymentStatus) => Promise<void>;
}

// @public (undocumented)
export interface IFlowReport {
    // (undocumented)
    category: string;
    // (undocumented)
    cmd: string;
    // (undocumented)
    executable: string;
    // (undocumented)
    input: CommandLineInput;
    // (undocumented)
    isHeadless: boolean;
    // (undocumented)
    optionFlowData: Array<TypeOptionFlowData>;
    // (undocumented)
    projectEnvIdentifier?: string;
    // (undocumented)
    projectIdentifier?: string;
    // (undocumented)
    runtime: string;
    // (undocumented)
    subCmd: string | undefined;
    // (undocumented)
    timestamp: string;
    // (undocumented)
    version: string;
}

// @public (undocumented)
export function info(message: string): void;

// @public (undocumented)
export type INotificationsResource = IAnalyticsResource;

// @public (undocumented)
export interface INotificationsResourceMeta {
    // (undocumented)
    Id: string;
    // (undocumented)
    lastPushDirHash?: string;
    // (undocumented)
    lastPushTimeStamp?: string;
    // (undocumented)
    mobileHubMigrated?: boolean;
    // (undocumented)
    Name: string;
    // (undocumented)
    output: Record<string, $TSAny>;
    // (undocumented)
    Region: string;
    // (undocumented)
    ResourceName: string;
    // (undocumented)
    service: string;
}

// @public (undocumented)
export type InputOptions = Record<string, string | boolean>;

// @public (undocumented)
type InputParameters = {
    forcePush?: boolean;
    iterativeRollback?: boolean;
    restoreBackend?: boolean;
};

// @public (undocumented)
export class InvalidSubCommandError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
export interface IOptionFlowCLIData {
    // (undocumented)
    input: unknown;
    // (undocumented)
    prompt: string;
    // (undocumented)
    timestamp: number;
}

// @public (undocumented)
export interface IOptionFlowHeadlessData {
    // (undocumented)
    input: string;
    // (undocumented)
    timestamp: number;
}

// @public (undocumented)
export interface IPluginAPIResponse {
    // (undocumented)
    errorCode?: PluginAPIError;
    // (undocumented)
    pluginName: string;
    // (undocumented)
    reasonMsg?: string;
    // (undocumented)
    resourceProviderServiceName: string;
    // (undocumented)
    status: boolean;
}

// @public (undocumented)
export interface IPluginCapabilityAPIResponse extends IPluginAPIResponse {
    // (undocumented)
    capability: string;
    // (undocumented)
    subCapability?: string;
}

// @public (undocumented)
export type IPluginCollection = {
    [pluginType: string]: IPluginInfo[];
};

// @public (undocumented)
export type IPluginInfo = {
    packageName: string;
    packageVersion: string;
    packageLocation: string;
    manifest: IPluginManifest;
};

// @public (undocumented)
export type IPluginManifest = {
    name: string;
    type: string;
    commands?: string[];
    services?: string[];
    functionRuntime?: FunctionBreadcrumb;
};

// @public (undocumented)
export type IPluginPlatform = {
    pluginDirectories: string[];
    pluginPrefixes: string[];
    userAddedLocations: string[];
    lastScanTime: Date;
    maxScanIntervalInSeconds: number;
    plugins: IPluginCollection;
    excluded: IPluginCollection;
};

// @public (undocumented)
export const isCI: () => boolean;

// @public (undocumented)
export const isPackaged: boolean;

// @public (undocumented)
export const isResourceNameUnique: (category: string, resourceName: string, throwOnMatch?: boolean) => boolean;

// @public (undocumented)
export const isWindowsPlatform: () => boolean;

// @public (undocumented)
export interface IUsageData extends IUsageMetricsData, FlowRecorder {
}

// @public (undocumented)
export interface IUsageDataPayload {
    // (undocumented)
    accountId: string;
    // (undocumented)
    amplifyCliVersion: string;
    // (undocumented)
    codePathDurations: Partial<Record<TimedCodePath, number>>;
    // (undocumented)
    downstreamException: SerializableError;
    // (undocumented)
    error: SerializableError;
    // (undocumented)
    flowReport: IFlowReport;
    // (undocumented)
    input: CommandLineInput | null;
    // (undocumented)
    inputOptions: CommandLineInput['options'];
    // (undocumented)
    installationUuid: string;
    // (undocumented)
    isCi: boolean;
    // (undocumented)
    nodeVersion: string;
    // (undocumented)
    osPlatform: string;
    // (undocumented)
    osRelease: string;
    // (undocumented)
    payloadVersion: string;
    // (undocumented)
    projectSetting: ProjectSettings;
    // (undocumented)
    pushNormalizationFactor: number;
    // (undocumented)
    sessionUuid: string;
    // (undocumented)
    state: string;
    // (undocumented)
    timestamp: string;
}

// @public (undocumented)
export interface IUsageMetricsData {
    // (undocumented)
    calculatePushNormalizationFactor: (events: {
        StackId: string;
        PhysicalResourceId: string;
    }[], StackId: string) => void;
    // (undocumented)
    emitAbort: () => Promise<void>;
    // (undocumented)
    emitError: (error: Error | null) => Promise<void>;
    // (undocumented)
    emitSuccess: () => Promise<void>;
    // (undocumented)
    getSessionUuid: () => string;
    // (undocumented)
    getUsageDataPayload: (error: Error | null, state: string) => IUsageDataPayload;
    // (undocumented)
    init: (installationUuid: string, version: string, input: CommandLineInput, accountId: string, projectSettings: ProjectSettings, processStartTimeStamp: number) => void;
    // (undocumented)
    startCodePathTimer: (codePath: StartableTimedCodePath) => void;
    // (undocumented)
    stopCodePathTimer: (codePath: StoppableTimedCodePath) => void;
}

// @public (undocumented)
export class JSONUtilities {
    // (undocumented)
    static parse: <T>(jsonString: string, options?: {
        preserveComments?: boolean;
    }) => T;
    // (undocumented)
    static readJson: <T>(fileName: string, options?: {
        throwIfNotExist?: boolean;
        preserveComments?: boolean;
    }) => T | undefined;
    // (undocumented)
    static stringify: (data: unknown, options?: {
        minify?: boolean;
        orderedKeys?: boolean;
    }) => string;
    // (undocumented)
    static writeJson: (fileName: string, data: unknown, options?: {
        mode?: number;
        minify?: boolean;
        secureFile?: boolean;
        orderedKeys?: boolean;
    }) => void;
}

// @public (undocumented)
export type LocalAwsInfo = {
    NONE: Record<string, unknown>;
};

// @public (undocumented)
export type LocalEnvInfo = Required<Pick<ProjectSettings, 'projectPath' | 'defaultEditor' | 'envName' | 'noUpdateBackend'>>;

// @public (undocumented)
export function lookUpCommand(commandsInfo: Array<CommandInfo>, commandName: string): CommandInfo | undefined;

// @public (undocumented)
export function lookUpSubcommand(commandsInfo: Array<CommandInfo>, commandName: string, subcommandName: string): SubCommandInfo | undefined;

// @public (undocumented)
export enum ManuallyTimedCodePath {
    // (undocumented)
    INIT_ENV_CATEGORIES = "initEnvCategories",
    // (undocumented)
    INIT_ENV_PLATFORM = "initEnvPlatform",
    // (undocumented)
    PLUGIN_TIME = "pluginTime",
    // (undocumented)
    PROMPT_TIME = "promptTime",
    // (undocumented)
    PUSH_DEPLOYMENT = "pushDeployment",
    // (undocumented)
    PUSH_TRANSFORM = "pushTransform"
}

// Warning: (ae-forgotten-export) The symbol "deploymentSecretMerge" needs to be exported by the entry point index.d.ts
//
// @public (undocumented)
export const mergeDeploymentSecrets: (deploymentSecretsModifier: deploymentSecretMerge) => DeploymentSecrets;

// @public (undocumented)
export type Message = {
    message: string;
    id: string;
    conditions?: {
        enabled: boolean;
        cliVersions?: string;
        startTime?: string;
        endTime?: string;
    };
};

// @public (undocumented)
export interface MigrationInfo {
    // (undocumented)
    amplifyMeta: $TSMeta;
    // (undocumented)
    backendConfig: Record<string, unknown>;
    // (undocumented)
    currentAmplifyMeta: $TSMeta;
    // (undocumented)
    initVersion: string;
    // (undocumented)
    localAwsInfo: LocalAwsInfo;
    // (undocumented)
    localEnvInfo: LocalEnvInfo;
    // (undocumented)
    newVersion: string;
    // (undocumented)
    projectConfig: ProjectConfig;
    // (undocumented)
    projectPath: string;
    // (undocumented)
    teamProviderInfo: TeamProviderInfo;
}

// @public (undocumented)
export class MissingParametersError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
export type NoArgsAmplifyEventData = Record<string, never>;

// @public (undocumented)
export enum NotificationChannels {
    // (undocumented)
    APNS = "APNS",
    // (undocumented)
    EMAIL = "Email",
    // (undocumented)
    FCM = "FCM",
    // (undocumented)
    IN_APP_MSG = "InAppMessaging",
    // (undocumented)
    PUSH_NOTIFICATION = "PushNotification",
    // (undocumented)
    SMS = "SMS"
}

// @public (undocumented)
export class NotImplementedError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
export type NumberFeatureFlag = {
    type: 'number';
    name: string;
    defaultValueForExistingProjects: number;
    defaultValueForNewProjects: number;
};

// @public (undocumented)
const open_2: (target: string, options: opn.Options) => Promise<ChildProcess | void>;
export { open_2 as open }

// @public (undocumented)
export const overriddenCategories: string[];

// @public (undocumented)
export interface PackageManager {
    // (undocumented)
    readonly displayValue: string;
    // (undocumented)
    readonly executable: string;
    // (undocumented)
    getInstallArgs: (buildType: BuildType, resourceDir?: string) => string[];
    // (undocumented)
    getRunScriptArgs: (scriptName: string) => string[];
    // (undocumented)
    readonly lockFile: string;
    // (undocumented)
    readonly packageManager: PackageManagerType;
    // (undocumented)
    readonly runner: string;
    // (undocumented)
    version?: SemVer;
}

// @public (undocumented)
export const packageManagers: Record<PackageManagerType, PackageManager>;

// @public (undocumented)
export type PackageManagerType = 'yarn' | 'npm' | 'pnpm' | 'custom';

// @public (undocumented)
export const parseArn: (arn: string) => ARN;

// @public (undocumented)
export function parseHelpCommands(input: $TSAny, commandsInfo: Array<CommandInfo>): {
    command: string;
    subCommand: string;
};

// @public (undocumented)
export type PartialAmplifyExceptionOptions = Partial<AmplifyExceptionOptions> & {
    message: string;
};

// @public (undocumented)
export const PathConstants: {
    DotAWSDirName: string;
    AWSCredentials: string;
    AWSConfig: string;
    DeploymentSecretsFileName: string;
    AmplifyAdminDirName: string;
    AmplifyDirName: string;
    DotAmplifyDirName: string;
    DotConfigDirName: string;
    BackendDirName: string;
    CurrentCloudBackendDirName: string;
    HooksDirName: string;
    BuildDirName: string;
    OverrideDirName: string;
    ProviderName: string;
    CfnStacksBuildDirName: string;
    AmplifyAdminConfigFileName: string;
    AmplifyRcFileName: string;
    GitIgnoreFileName: string;
    ProjectConfigFileName: string;
    AmplifyMetaFileName: string;
    TagsFileName: string;
    ParametersJsonFileName: string;
    ReadMeFileName: string;
    HooksConfigFileName: string;
    HooksShellSampleFileName: string;
    HooksJsSampleFileName: string;
    HooksReadmeFileName: string;
    LocalEnvFileName: string;
    LocalAWSInfoFileName: string;
    TeamProviderInfoFileName: string;
    BackendConfigFileName: string;
    CLIJSONFileName: string;
    CLIJSONFileNameGlob: string;
    CLIJsonWithEnvironmentFileName: (env: string) => string;
    CLIInputsJsonFileName: string;
    CfnFileName: (resourceName: string) => string;
    CustomPoliciesFilename: string;
    DefaultFrontEndExportFolder: string;
    DefaultExportFolder: string;
    ExportManifestJsonFilename: string;
    ExportTagsJsonFileName: string;
    ExportCategoryStackMappingJsonFilename: string;
    OverrideFileName: string;
};

// @public (undocumented)
export class PathManager {
    constructor();
    // (undocumented)
    findProjectRoot: () => string | undefined;
    // (undocumented)
    getAmplifyAdminConfigFilePath: () => string;
    // (undocumented)
    getAmplifyAdminDirPath: () => string;
    // (undocumented)
    getAmplifyDirPath: (projectPath?: string) => string;
    // (undocumented)
    getAmplifyLibRoot: () => string;
    // (undocumented)
    getAmplifyMetaFilePath: (projectPath?: string) => string;
    // (undocumented)
    getAmplifyPackageLibDirPath: (packageName: string) => string;
    // (undocumented)
    getAmplifyRcFilePath: (projectPath?: string) => string;
    // (undocumented)
    getAWSConfigFilePath: () => string;
    // (undocumented)
    getAWSCredentialsFilePath: () => string;
    // (undocumented)
    getBackendConfigFilePath: (projectPath?: string) => string;
    // (undocumented)
    getBackendDirPath: (projectPath?: string) => string;
    // (undocumented)
    getCLIJSONFilePath: (projectPath: string, env?: string) => string;
    // (undocumented)
    getCurrentAmplifyMetaFilePath: (projectPath?: string) => string;
    // (undocumented)
    getCurrentBackendConfigFilePath: (projectPath?: string) => string;
    // (undocumented)
    getCurrentCfnTemplatePath: (projectPath: string | undefined, categoryName: string, resourceName: string) => string;
    // (undocumented)
    getCurrentCloudBackendDirPath: (projectPath?: string) => string;
    // (undocumented)
    getCurrentCloudRootStackDirPath: (projectPath: string) => string;
    // (undocumented)
    getCurrentResourceParametersJsonPath: (projectPath: string | undefined, categoryName: string, resourceName: string) => string;
    // (undocumented)
    getCurrentTagFilePath: (projectPath?: string) => string;
    // (undocumented)
    getCustomPoliciesPath: (category: string, resourceName: string) => string;
    // (undocumented)
    getDeploymentSecrets: () => string;
    // (undocumented)
    getDotAWSAmplifyDirPath: () => string;
    // (undocumented)
    getDotAWSDirPath: () => string;
    // (undocumented)
    getDotConfigDirPath: (projectPath?: string) => string;
    // (undocumented)
    getGitIgnoreFilePath: (projectPath?: string) => string;
    // (undocumented)
    getHomeDotAmplifyDirPath: () => string;
    // (undocumented)
    getHooksConfigFilePath: (projectPath?: string) => string;
    // (undocumented)
    getHooksDirPath: (projectPath?: string) => string;
    // (undocumented)
    getLocalAWSInfoFilePath: (projectPath?: string) => string;
    // (undocumented)
    getLocalEnvFilePath: (projectPath?: string) => string;
    // (undocumented)
    getOverrideDirPath: (projectPath: string, category: string, resourceName: string) => string;
    // (undocumented)
    getProjectConfigFilePath: (projectPath?: string) => string;
    // (undocumented)
    getReadMeFilePath: (projectPath?: string) => string;
    // (undocumented)
    getResourceCfnTemplatePath: (projectPath: string | undefined, category: string, resourceName: string, buildDirectory?: boolean) => string;
    // (undocumented)
    getResourceDirectoryPath: (projectPath: string | undefined, category: string, resourceName: string) => string;
    // (undocumented)
    getResourceInputsJsonFilePath: (projectPath: string | undefined, category: string, resourceName: string) => string;
    // (undocumented)
    getResourceOverrideFilePath: (projectPath: string | undefined, category: string, resourceName: string) => string;
    // (undocumented)
    getResourceParametersFilePath: (projectPath: string | undefined, category: string, resourceName: string) => string;
    // (undocumented)
    getRootOverrideDirPath: (projectPath: string) => string;
    // (undocumented)
    getRootStackBuildDirPath: (projectPath: string) => string;
    // (undocumented)
    getStackBuildCategoryResourceDirPath: (projectPath: string, category: string, resourceName: string) => string;
    // (undocumented)
    getTagFilePath: (projectPath?: string) => string;
    // (undocumented)
    getTeamProviderInfoFilePath: (projectPath?: string) => string;
}

// @public (undocumented)
export const pathManager: PathManager;

// @public (undocumented)
type PinpointInfo = {
    pinpointApp?: $TSAny;
    pinpointClient?: $TSAny;
    pinpointInputParams?: $TSAny;
};

// @public (undocumented)
type Plugin_2 = {
    name: string;
    directory: string;
    pluginName: string;
    pluginType: string;
    commands: string[];
};
export { Plugin_2 as Plugin }

// @public (undocumented)
export enum PluginAPIError {
    // (undocumented)
    E_NO_RESPONSE = "E_NO_RESPONSE",
    // (undocumented)
    E_NO_SVC_PROVIDER = "E_NO_SVC_PROVIDER",
    // (undocumented)
    E_PUSH_FAILED = "E_PUSH_FAILED",
    // (undocumented)
    E_SVC_PROVIDER_CDK = "E_SVC_CDK",
    // (undocumented)
    E_SVC_PROVIDER_NO_CAPABILITY = "E_SVC_PROVIDER_NO_CAPABILITY",
    // (undocumented)
    E_SVC_PROVIDER_SDK = "E_SVC_SDK",
    // (undocumented)
    E_UNKNOWN = "E_UNKNOWN"
}

// @public (undocumented)
export class PluginCollection implements IPluginCollection {
    // (undocumented)
    [key: string]: Array<PluginInfo>;
}

// @public (undocumented)
export class PluginInfo implements IPluginInfo {
    constructor(packageName: string, packageVersion: string, packageLocation: string, manifest: PluginManifest);
    // (undocumented)
    manifest: PluginManifest;
    // (undocumented)
    packageLocation: string;
    // (undocumented)
    packageName: string;
    // (undocumented)
    packageVersion: string;
}

// @public (undocumented)
export class PluginManifest implements IPluginManifest {
    constructor(name: string, type: string, displayName?: string | undefined, aliases?: string[] | undefined, commands?: string[] | undefined, commandAliases?: {
        [key: string]: string;
    } | undefined, services?: string[] | undefined, eventHandlers?: AmplifyEvent[] | undefined);
    // (undocumented)
    aliases?: string[] | undefined;
    // (undocumented)
    commandAliases?: {
        [key: string]: string;
    } | undefined;
    // (undocumented)
    commands?: string[] | undefined;
    // (undocumented)
    displayName?: string | undefined;
    // (undocumented)
    eventHandlers?: AmplifyEvent[] | undefined;
    // (undocumented)
    name: string;
    // (undocumented)
    services?: string[] | undefined;
    // (undocumented)
    type: string;
}

// @public (undocumented)
export class PluginPlatform implements IPluginPlatform {
    constructor();
    // (undocumented)
    excluded: PluginCollection;
    // (undocumented)
    lastScanTime: Date;
    // (undocumented)
    maxScanIntervalInSeconds: number;
    // (undocumented)
    pluginDirectories: string[];
    // (undocumented)
    pluginPrefixes: string[];
    // (undocumented)
    plugins: PluginCollection;
    // (undocumented)
    userAddedLocations: string[];
}

// @public (undocumented)
export enum PluginVerificationError {
    // (undocumented)
    InvalidManifest = "InvalidManifest",
    // (undocumented)
    InvalidNodePackage = "InvalidNodePackage",
    // (undocumented)
    MissingExecuteAmplifyCommandMethod = "MissingExecuteAmplifyCommandMethod",
    // (undocumented)
    MissingHandleAmplifyEventMethod = "MissingHandleAmplifyEventMethod",
    // (undocumented)
    MissingManifest = "MissingManifest",
    // (undocumented)
    PluginDirPathNotExist = "PluginDirPathNotExist"
}

// @public (undocumented)
export class PluginVerificationResult {
    constructor(verified?: boolean, error?: PluginVerificationError | undefined, errorInfo?: any, packageJson?: any, manifest?: PluginManifest | undefined);
    // (undocumented)
    error?: PluginVerificationError | undefined;
    // (undocumented)
    errorInfo?: any;
    // (undocumented)
    manifest?: PluginManifest | undefined;
    // (undocumented)
    packageJson?: any;
    // (undocumented)
    verified: boolean;
}

// @public (undocumented)
const print_2: {
    info: typeof info;
    fancy: typeof fancy;
    warning: typeof warning;
    error: typeof error;
    success: typeof success;
    table: typeof table;
    debug: typeof debug;
    green: typeof green;
    yellow: typeof yellow;
    red: typeof red;
    blue: typeof blue;
};
export { print_2 as print }

// @public (undocumented)
export type ProjectConfig<T extends string = ''> = Pick<ProjectSettings, 'frontend' | 'version' | 'providers' | 'projectPath' | 'defaultEditor' | 'frontendHandler'> & Record<T, string>;

// @public (undocumented)
type ProjectInfo = {
    amplifyMeta?: $TSAny;
    awsConfigInfo?: $TSAny;
    backendConfig?: $TSAny;
    existingLocalAwsInfo?: $TSAny;
    existingProjectConfig?: $TSAny;
    existingTeamProviderInfo?: $TSAny;
    isNewProject?: boolean;
    inputParams: $TSObject;
    localEnvInfo: LocalEnvInfo;
    projectConfig?: $TSAny;
    serviceMeta?: $TSAny;
    teamProviderInfo?: $TSAny;
};

// @public (undocumented)
export const projectNotInitializedError: () => AmplifyError;

// @public (undocumented)
export type ProjectSettings = {
    frontend?: string;
    editor?: string;
    envName: string;
    framework?: string;
    version?: string;
    providers?: string[];
    projectPath?: string;
    defaultEditor?: string;
    frontendHandler?: unknown;
    noUpdateBackend?: boolean;
};

// @public (undocumented)
export function promptConfirmationRemove(context: $TSContext, serviceType?: string): Promise<boolean>;

// @public (undocumented)
export interface ProviderContext {
    // (undocumented)
    projectName: string;
    // (undocumented)
    provider: string;
    // (undocumented)
    service: string;
}

// @public (undocumented)
export function readCFNTemplate(filePath: string): {
    templateFormat: CFNTemplateFormat;
    cfnTemplate: Template_2;
};

// Warning: (ae-forgotten-export) The symbol "defaultReadCFNTemplateOptions" needs to be exported by the entry point index.d.ts
//
// @public (undocumented)
export function readCFNTemplate(filePath: string, options: Partial<typeof defaultReadCFNTemplateOptions>): {
    templateFormat: CFNTemplateFormat;
    cfnTemplate: Template_2;
} | undefined;

// @public (undocumented)
export function ReadTags(tagsFilePath: string): Tag[];

// @public (undocumented)
export const recursiveOmit: (obj: $TSObject, path: Array<string>) => void;

// @public (undocumented)
export function red(message: string): void;

// Warning: (ae-forgotten-export) The symbol "deploymentSecretsRemove" needs to be exported by the entry point index.d.ts
//
// @public (undocumented)
export const removeFromDeploymentSecrets: (deploymentSecretsModifier: deploymentSecretsRemove) => DeploymentSecrets;

// @public (undocumented)
export class ResourceAlreadyExistsError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
export class ResourceCountLimitExceedError extends AmplifyError {
    constructor(errMessage: string);
}

// @public (undocumented)
export class ResourceCredentialsNotFoundError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
export class ResourceDoesNotExistError extends AmplifyError {
    constructor(errMessage: string);
}

// @public (undocumented)
export type ResourceEntry = {
    resourceName: string;
    resource: Record<string, unknown>;
};

// @public (undocumented)
export type ResourceName = string;

// @public (undocumented)
export interface ResourceTuple {
    // (undocumented)
    category: string;
    // (undocumented)
    resourceName: string;
}

// @public (undocumented)
export function runHelp(context: $TSContext, commandsInfo: Array<CommandInfo>): void;

// @public (undocumented)
export const runOverride: (overrideDir: string, templateObject: $TSAny, projectInfo: $TSAny) => Promise<void>;

// @public (undocumented)
export type Runtime = {
    plugins: Plugin_2[];
};

// @public (undocumented)
export const SecretFileMode = 384;

// @public (undocumented)
export type SerializableError = {
    name: string;
    message: string;
    details?: string;
    code?: string;
    trace?: StackTraceElement[];
};

// @public (undocumented)
export type ServiceSelection = {
    provider: string;
    service: string;
    providerName: string;
};

// @public (undocumented)
export const setPermissionsBoundaryArn: (arn?: string, env?: string, teamProviderInfo?: $TSObject) => void;

// @public (undocumented)
export function skipHooks(): boolean;

// @public (undocumented)
export const skipHooksFilePath = "/opt/amazon";

// @public (undocumented)
export const spinner: Ora;

// @public (undocumented)
export type StackTraceElement = {
    methodName: string;
    file: string;
    lineNumber: string;
    columnNumber: string;
};

// @public (undocumented)
export type StartableTimedCodePath = ManuallyTimedCodePath | UntilExitTimedCodePath;

// @public (undocumented)
export class StateManager {
    // (undocumented)
    backendConfigFileExists: (projectPath?: string) => boolean;
    // (undocumented)
    cliJSONFileExists: (projectPath: string, env?: string) => boolean;
    // (undocumented)
    currentMetaFileExists: (projectPath?: string) => boolean;
    // (undocumented)
    getAmplifyAdminConfigEntry: (appId: string, options?: GetOptions<$TSAny>) => $TSAny;
    // (undocumented)
    getAppID: () => string;
    // (undocumented)
    getBackendConfig: (projectPath?: string, options?: GetOptions<$TSAny>, includeParameters?: boolean) => $TSAny;
    // (undocumented)
    getCLIJSON: (projectPath: string, env?: string, options?: GetOptions<$TSAny>) => $TSAny;
    // (undocumented)
    getCurrentBackendConfig: (projectPath?: string, options?: GetOptions<$TSAny>) => $TSAny;
    // (undocumented)
    getCurrentEnvName: (projectPath?: string) => string | undefined;
    // (undocumented)
    getCurrentMeta: (projectPath?: string, options?: GetOptions<$TSMeta>) => $TSMeta;
    // (undocumented)
    getCurrentProjectTags: (projectPath?: string) => Tag[];
    // (undocumented)
    getCurrentRegion: (projectPath?: string) => string | undefined;
    // (undocumented)
    getCurrentResourceParametersJson: (projectPath: string | undefined, category: string, resourceName: string, options?: GetOptions<$TSAny>) => $TSAny;
    // (undocumented)
    getCustomPolicies: (categoryName: string, resourceName: string) => CustomIAMPolicies;
    // (undocumented)
    getDeploymentSecrets: () => DeploymentSecrets;
    // (undocumented)
    getHooksConfigJson: (projectPath?: string) => HooksConfig;
    // (undocumented)
    getHydratedTags: (projectPath?: string | undefined, skipProjEnv?: boolean) => Tag[];
    // (undocumented)
    getLocalAWSInfo: (projectPath?: string, options?: GetOptions<$TSAny>) => $TSAny;
    // (undocumented)
    getLocalEnvInfo: (projectPath?: string, options?: GetOptions<$TSAny>) => $TSAny;
    // (undocumented)
    getMeta: (projectPath?: string, options?: GetOptions<$TSMeta>) => $TSMeta;
    // (undocumented)
    getProjectConfig: (projectPath?: string, options?: GetOptions<$TSAny>) => $TSAny;
    // (undocumented)
    getProjectName: () => string;
    // (undocumented)
    getProjectTags: (projectPath?: string) => Tag[];
    // (undocumented)
    getResourceFromMeta: (amplifyMeta: Record<string, $TSAny>, categoryName: string, serviceName: string, resourceName?: string | undefined, throwIfNotExist?: boolean) => ResourceEntry | null;
    // (undocumented)
    getResourceInputsJson: (projectPath: string | undefined, category: string, resourceName: string, options?: GetOptions<$TSAny>) => $TSAny;
    // (undocumented)
    getResourceParametersJson: (projectPath: string | undefined, category: string, resourceName: string, options?: GetOptions<$TSAny>) => $TSAny;
    // (undocumented)
    getTeamProviderInfo: (projectPath?: string, options?: GetOptions<$TSTeamProviderInfo>) => $TSTeamProviderInfo;
    // (undocumented)
    isTagFilePresent: (projectPath?: string | undefined) => boolean;
    // (undocumented)
    localAWSInfoExists: (projectPath?: string) => boolean;
    // (undocumented)
    localEnvInfoExists: (projectPath?: string) => boolean;
    // (undocumented)
    metaFileExists: (projectPath?: string) => boolean;
    // (undocumented)
    projectConfigExists: (projectPath?: string) => boolean;
    // (undocumented)
    removeAmplifyAdminConfigEntry: (appId: string) => void;
    // (undocumented)
    resourceInputsJsonExists: (projectPath: string | undefined, category: string, resourceName: string) => boolean;
    // (undocumented)
    setAmplifyAdminConfigEntry: (appId: string, config: $TSAny) => void;
    // (undocumented)
    setBackendConfig: (projectPath: string | undefined, backendConfig: $TSAny) => void;
    // (undocumented)
    setCLIJSON: (projectPath: string, cliJSON: $TSAny, env?: string) => void;
    // (undocumented)
    setCurrentBackendConfig: (projectPath: string | undefined, backendConfig: $TSAny) => void;
    // (undocumented)
    setCurrentMeta: (projectPath: string | undefined, meta: $TSMeta) => void;
    // (undocumented)
    setDeploymentSecrets: (deploymentSecrets: DeploymentSecrets) => void;
    // (undocumented)
    setLocalAWSInfo: (projectPath: string | undefined, localAWSInfo: $TSAny) => void;
    // (undocumented)
    setLocalEnvInfo: (projectPath: string | undefined, localEnvInfo: $TSAny) => void;
    // (undocumented)
    setMeta: (projectPath: string | undefined, meta: $TSMeta) => void;
    // (undocumented)
    setProjectConfig: (projectPath: string | undefined, projectConfig: $TSAny) => void;
    // (undocumented)
    setProjectFileTags: (projectPath: string | undefined, tags: Tag[]) => void;
    // (undocumented)
    setResourceInputsJson: (projectPath: string | undefined, category: string, resourceName: string, inputs: $TSObject) => void;
    // (undocumented)
    setResourceParametersJson: (projectPath: string | undefined, category: string, resourceName: string, parameters: $TSAny) => void;
    // (undocumented)
    setSampleHooksDir: (projectPath: string | undefined, sourceDirPath: string) => void;
    // (undocumented)
    setTeamProviderInfo: (projectPath: string | undefined, teamProviderInfo: $TSTeamProviderInfo) => void;
    // (undocumented)
    teamProviderInfoExists: (projectPath?: string) => boolean;
}

// @public (undocumented)
export const stateManager: StateManager;

// @public (undocumented)
export type StepStatusParameters = Omit<DeploymentStepState, 'status'>;

// @public (undocumented)
export type StoppableTimedCodePath = ManuallyTimedCodePath | FromStartupTimedCodePaths;

// @public (undocumented)
export type SubCommandInfo = {
    subCommand: string;
    subCommandDescription: string;
    subCommandUsage: string;
    subCommandFlags: Array<CommandFlagInfo>;
};

// @public (undocumented)
export function success(message: string): void;

// @public (undocumented)
export const supportedEnvEvents: HooksVerb[];

// @public (undocumented)
export const supportedEvents: Record<HooksVerb, HooksNoun[]>;

// @public (undocumented)
export function table(data: string[][], options?: {
    format?: 'markdown' | 'lean';
}): void;

// @public (undocumented)
export interface Tag {
    // (undocumented)
    Key: string;
    // (undocumented)
    Value: string;
}

// @public (undocumented)
export type TeamProviderEnvironment = {
    categories: Record<string, unknown>;
};

// @public (undocumented)
export type TeamProviderInfo = {
    [envName: string]: Record<string, unknown>;
};

// @public (undocumented)
export interface Template {
    // (undocumented)
    AWSTemplateFormatVersion?: string;
    // (undocumented)
    Conditions?: Record<string, any>;
    // (undocumented)
    Description?: string;
    // (undocumented)
    Mappings?: {
        [key: string]: {
            [key: string]: Record<string, string | number | string[]>;
        };
    };
    // (undocumented)
    Metadata?: Record<string, any>;
    // (undocumented)
    Outputs?: Record<string, any>;
    // (undocumented)
    Parameters?: Record<string, any>;
    // (undocumented)
    Resources?: Record<string, any>;
    // (undocumented)
    Transform?: any;
}

// @public (undocumented)
export type TimedCodePath = ManuallyTimedCodePath | UntilExitTimedCodePath | FromStartupTimedCodePaths;

// @public (undocumented)
export type TypeDef = {
    typeName: string;
    service: string;
};

// @public (undocumented)
export type TypeOptionFlowData = IOptionFlowHeadlessData | IOptionFlowCLIData;

// @public (undocumented)
export class UnknownArgumentError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
export class UnknownResourceTypeError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
export class UnrecognizedFrameworkError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
export class UnrecognizedFrontendError extends AmplifyError {
    constructor(errMessage?: string);
}

// @public (undocumented)
export enum UntilExitTimedCodePath {
    // (undocumented)
    POST_PROCESS = "postProcess"
}

// @public (undocumented)
export function validate(tags: Tag[], skipProjectEnv?: boolean): void;

// @public (undocumented)
export function validateExportDirectoryPath(directoryPath: any, defaultPath: string): string;

// @public (undocumented)
export class ViewResourceTableParams {
    constructor(cliParams: CLIParams);
    // (undocumented)
    get categoryList(): string[] | [];
    // (undocumented)
    get command(): string;
    // (undocumented)
    getCategoryFromCLIOptions(cliOptions: object): string[];
    // (undocumented)
    getStyledHelp(): string;
    // (undocumented)
    get help(): boolean;
    // (undocumented)
    logErrorException(e: Error, context: $TSContext): void;
    // (undocumented)
    styleCommand(str: string): string;
    // (undocumented)
    styleHeader(str: string): string;
    // (undocumented)
    styleOption(str: string): string;
    // (undocumented)
    stylePrompt(str: string): string;
    // (undocumented)
    get verbose(): boolean;
}

// @public (undocumented)
export function warning(message: string): void;

// @public (undocumented)
export const writeCFNTemplate: (template: object, filePath: string, options?: WriteCFNTemplateOptions) => Promise<void>;

// @public (undocumented)
export type WriteCFNTemplateOptions = {
    templateFormat?: CFNTemplateFormat;
    minify?: boolean;
};

// @public (undocumented)
export function yellow(message: string): void;

// Warnings were encountered during analysis:
//
// src/types.ts:18:3 - (ae-forgotten-export) The symbol "AmplifyToolkit" needs to be exported by the entry point index.d.ts

// (No @packageDocumentation comment for this package)

```
