export interface BackendAPIConflictResolution {
    /** The strategy for conflict resolution. */
    ResolutionStrategy?: 'OPTIMISTIC_CONCURRENCY' | 'LAMBDA' | 'AUTOMERGE' | 'NONE';
}
export interface BackendAPIAuthType {
    /** Describes the authentication mode. */
    Mode?: 'API_KEY' | 'AWS_IAM' | 'AMAZON_COGNITO_USER_POOLS' | 'OPENID_CONNECT';
    /** Describes settings for the authentication mode. */
    Settings?: any;
}
export interface BackendAPIResourceConfig {
    /** Additional authentication methods used to interact with your data models. */
    AdditionalAuthTypes?: any[];
    /** The API name used to interact with the data model, configured as a part of your Amplify project. */
    ApiName?: string;
    /** The conflict resolution strategy for your data stored in the data models. */
    ConflictResolution?: BackendAPIConflictResolution;
    /** The default authentication type for interacting with the configured data models in your Amplify project. */
    DefaultAuthType?: BackendAPIAuthType;
    /** The service used to provision and interact with the data model. */
    Service?: string;
    /** The definition of the data model in the annotated transform of the GraphQL schema. */
    TransformSchema?: string;
}
export interface CreateBackendAuthIdentityPoolConfig {
    /** Name of the Amazon Cognito identity pool used for authorization. */
    IdentityPoolName: string;
    /** Set to true or false based on whether you want to enable guest authorization to your Amplify app. */
    UnauthenticatedLogin: boolean;
}
export interface CreateBackendAuthUserPoolConfig {
    /** (DEPRECATED) Describes the forgotten password policy for your Amazon Cognito user pool, configured as a part of your Amplify project. */
    ForgotPassword?: any;
    /** Describes whether to apply multi-factor authentication policies for your Amazon Cognito user pool configured as a part of your Amplify project. */
    Mfa?: any;
    /** Describes the OAuth policy and rules for your Amazon Cognito user pool, configured as a part of your Amplify project. */
    OAuth?: any;
    /** Describes the password policy for your Amazon Cognito user pool, configured as a part of your Amplify project. */
    PasswordPolicy?: any;
    /** The required attributes to sign up new users in the user pool. */
    RequiredSignUpAttributes: any[];
    /** Describes the sign-in methods that your Amplify app users use to log in using the Amazon Cognito user pool, configured as a part of your Amplify project. */
    SignInMethod: 'EMAIL' | 'EMAIL_AND_PHONE_NUMBER' | 'PHONE_NUMBER' | 'USERNAME';
    /** The Amazon Cognito user pool name. */
    UserPoolName: string;
    /** Describes the email or SMS verification message for your Amazon Cognito user pool, configured as a part of your Amplify project. */
    VerificationMessage?: any;
}
export interface CreateBackendAuthResourceConfig {
    /** Defines whether you want to configure only authentication or both authentication and authorization settings. */
    AuthResources: 'USER_POOL_ONLY' | 'IDENTITY_POOL_AND_USER_POOL';
    /** Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of your auth resource in the Amplify project. */
    IdentityPoolConfigs?: CreateBackendAuthIdentityPoolConfig;
    /** Defines the service name to use when configuring an authentication resource in your Amplify project. */
    Service: 'COGNITO';
    /** Describes authentication configuration for the Amazon Cognito user pool, provisioned as a part of your auth resource in the Amplify project. */
    UserPoolConfigs: CreateBackendAuthUserPoolConfig;
}
export interface BackendStoragePermissions {
    /** Lists all authenticated user read, write, and delete permissions for your S3 bucket. */
    Authenticated: any[];
    /** Lists all unauthenticated user read, write, and delete permissions for your S3 bucket. */
    UnAuthenticated?: any[];
}
export interface CreateBackendStorageResourceConfig {
    /** The name of the S3 bucket. */
    BucketName?: string;
    /** The authorization configuration for the storage S3 bucket. */
    Permissions: BackendStoragePermissions;
    /** The name of the storage service. */
    ServiceName: 'S3';
}
export interface UpdateBackendAuthIdentityPoolConfig {
    /** A boolean value that can be set to allow or disallow guest-level authorization into your Amplify app. */
    UnauthenticatedLogin?: boolean;
}
export interface UpdateBackendAuthUserPoolConfig {
    /** (DEPRECATED) Describes the forgot password policy for your Amazon Cognito user pool, configured as a part of your Amplify project. */
    ForgotPassword?: any;
    /** Describes whether to apply multi-factor authentication policies for your Amazon Cognito user pool configured as a part of your Amplify project. */
    Mfa?: any;
    /** Describes the OAuth policy and rules for your Amazon Cognito user pool, configured as a part of your Amplify project. */
    OAuth?: any;
    /** Describes the password policy for your Amazon Cognito user pool, configured as a part of your Amplify project. */
    PasswordPolicy?: any;
    /** Describes the email or SMS verification message for your Amazon Cognito user pool, configured as a part of your Amplify project. */
    VerificationMessage?: any;
}
export interface UpdateBackendAuthResourceConfig {
    /** Defines the service name to use when configuring an authentication resource in your Amplify project. */
    AuthResources: 'USER_POOL_ONLY' | 'IDENTITY_POOL_AND_USER_POOL';
    /** Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of your auth resource in the Amplify project. */
    IdentityPoolConfigs?: UpdateBackendAuthIdentityPoolConfig;
    /** Defines the service name to use when configuring an authentication resource in your Amplify project. */
    Service: 'COGNITO';
    /** Describes the authentication configuration for the Amazon Cognito user pool, provisioned as a part of your auth resource in the Amplify project. */
    UserPoolConfigs: UpdateBackendAuthUserPoolConfig;
}
export interface LoginAuthConfigReqObj {
    /** The Amazon Cognito identity pool ID used for the Amplify Admin UI login authorization. */
    AwsCognitoIdentityPoolId?: string;
    /** The AWS Region for the Amplify Admin UI login. */
    AwsCognitoRegion?: string;
    /** The Amazon Cognito user pool ID used for Amplify Admin UI login authentication. */
    AwsUserPoolsId?: string;
    /** The web client ID for the Amazon Cognito user pools. */
    AwsUserPoolsWebClientId?: string;
}
export interface UpdateBackendStorageResourceConfig {
    /** The authorization configuration for the storage S3 bucket. */
    Permissions: BackendStoragePermissions;
    /** The name of the storage service. */
    ServiceName: 'S3';
}
/** The request body for CloneBackend. */
export interface CloneBackendInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The name of the destination backend environment to be created. */
    TargetEnvironmentName: string;
}
/** The request body for CreateBackend. */
export interface CreateBackendInput {
    /** The app ID. */
    AppId: string;
    /** The name of the app. */
    AppName: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The resource configuration for creating a backend. */
    ResourceConfig?: Record<string, any>;
    /** The name of the resource. */
    ResourceName?: string;
}
/** The request body for CreateBackendAPI. */
export interface CreateBackendAPIInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The resource configuration for this request. */
    ResourceConfig: BackendAPIResourceConfig;
    /** The name of this resource. */
    ResourceName: string;
}
/** The request body for CreateBackendAuth. */
export interface CreateBackendAuthInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The resource configuration for this request object. */
    ResourceConfig: CreateBackendAuthResourceConfig;
    /** The name of this resource. */
    ResourceName: string;
}
/** The request body for CreateBackendConfig. */
export interface CreateBackendConfigInput {
    /** The app ID. */
    AppId: string;
    /** The app ID for the backend manager. */
    BackendManagerAppId?: string;
}
/** The request body for CreateBackendStorage. */
export interface CreateBackendStorageInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The resource configuration for creating backend storage. */
    ResourceConfig: CreateBackendStorageResourceConfig;
    /** The name of the storage resource. */
    ResourceName: string;
}
export interface CreateTokenInput {
    /** The app ID. */
    AppId: string;
}
export interface DeleteBackendInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
}
/** The request body for DeleteBackendAPI. */
export interface DeleteBackendAPIInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The name of this resource. */
    ResourceName: string;
    /** Defines the resource configuration for the data model in your Amplify project. */
    ResourceConfig?: BackendAPIResourceConfig;
}
/** The request body for DeleteBackendAuth. */
export interface DeleteBackendAuthInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The name of this resource. */
    ResourceName: string;
}
/** The request body for DeleteBackendStorage. */
export interface DeleteBackendStorageInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The name of the storage resource. */
    ResourceName: string;
    /** The name of the storage service. */
    ServiceName: 'S3';
}
export interface DeleteTokenInput {
    /** The app ID. */
    AppId: string;
    /** The session ID. */
    SessionId: string;
}
/** The request body for GenerateBackendAPIModels. */
export interface GenerateBackendAPIModelsInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The name of this resource. */
    ResourceName: string;
}
/** The request body for GetBackend. */
export interface GetBackendInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName?: string;
}
/** The request body for GetBackendAPI. */
export interface GetBackendAPIInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The name of this resource. */
    ResourceName: string;
    /** Defines the resource configuration for the data model in your Amplify project. */
    ResourceConfig?: BackendAPIResourceConfig;
}
/** The request body for GetBackendAPIModels. */
export interface GetBackendAPIModelsInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The name of this resource. */
    ResourceName: string;
}
/** The request body for GetBackendAuth. */
export interface GetBackendAuthInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The name of this resource. */
    ResourceName: string;
}
export interface GetBackendJobInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The ID for the job. */
    JobId: string;
}
/** The request body for GetBackendStorage. */
export interface GetBackendStorageInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The name of the storage resource. */
    ResourceName: string;
}
export interface GetTokenInput {
    /** The app ID. */
    AppId: string;
    /** The session ID. */
    SessionId: string;
}
/** The request body for ImportBackendAuth. */
export interface ImportBackendAuthInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The ID of the Amazon Cognito native client. */
    NativeClientId: string;
    /** The ID of the Amazon Cognito user pool. */
    UserPoolId: string;
    /** The ID of the Amazon Cognito web client. */
    WebClientId: string;
    /** The ID of the Amazon Cognito identity pool. */
    IdentityPoolId?: string;
}
/** The request body for ImportBackendStorage. */
export interface ImportBackendStorageInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The name of the storage service. */
    ServiceName: 'S3';
    /** The name of the S3 bucket. */
    BucketName?: string;
}
/** The request body for ListBackendJobs. */
export interface ListBackendJobsInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The ID for the job. */
    JobId?: string;
    /** The maximum number of results that you want in the response. */
    MaxResults?: number;
    /** The token for the next set of results. */
    NextToken?: string;
    /** Filters the list of response objects to include only those with the specified operation name. */
    Operation?: string;
    /** Filters the list of response objects to include only those with the specified status. */
    Status?: string;
}
/** The request body for S3Buckets. */
export interface ListS3BucketsInput {
    /** Reserved for future use. */
    NextToken?: string;
}
/** The request body for RemoveAllBackends. */
export interface RemoveAllBackendsInput {
    /** The app ID. */
    AppId: string;
    /** Cleans up the Amplify Console app if this value is set to true. */
    CleanAmplifyApp?: boolean;
}
export interface RemoveBackendConfigInput {
    /** The app ID. */
    AppId: string;
}
/** The request body for UpdateBackendAPI. */
export interface UpdateBackendAPIInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The name of this resource. */
    ResourceName: string;
    /** Defines the resource configuration for the data model in your Amplify project. */
    ResourceConfig?: BackendAPIResourceConfig;
}
/** The request body for UpdateBackendAuth. */
export interface UpdateBackendAuthInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The resource configuration for this request object. */
    ResourceConfig: UpdateBackendAuthResourceConfig;
    /** The name of this resource. */
    ResourceName: string;
}
/** The request body for UpdateBackendConfig. */
export interface UpdateBackendConfigInput {
    /** The app ID. */
    AppId: string;
    /** Describes the Amazon Cognito configuration for Admin UI access. */
    LoginAuthConfig?: LoginAuthConfigReqObj;
}
/** The request body for GetBackendJob. */
export interface UpdateBackendJobInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The ID for the job. */
    JobId: string;
    /** Filters the list of response objects to include only those with the specified operation name. */
    Operation?: string;
    /** Filters the list of response objects to include only those with the specified status. */
    Status?: string;
}
/** The request body for UpdateBackendStorage. */
export interface UpdateBackendStorageInput {
    /** The app ID. */
    AppId: string;
    /** The name of the backend environment. */
    BackendEnvironmentName: string;
    /** The resource configuration for updating backend storage. */
    ResourceConfig: UpdateBackendStorageResourceConfig;
    /** The name of the storage resource. */
    ResourceName: string;
}
/** AmplifyBackend service binding for Step Functions SDK integrations. */
export declare class AmplifyBackend {
    constructor();
    cloneBackend<T>(params: CloneBackendInput): Promise<T>;
    createBackend<T>(params: CreateBackendInput): Promise<T>;
    createBackendAPI<T>(params: CreateBackendAPIInput): Promise<T>;
    createBackendAuth<T>(params: CreateBackendAuthInput): Promise<T>;
    createBackendConfig<T>(params: CreateBackendConfigInput): Promise<T>;
    createBackendStorage<T>(params: CreateBackendStorageInput): Promise<T>;
    createToken<T>(params: CreateTokenInput): Promise<T>;
    deleteBackend<T>(params: DeleteBackendInput): Promise<T>;
    deleteBackendAPI<T>(params: DeleteBackendAPIInput): Promise<T>;
    deleteBackendAuth<T>(params: DeleteBackendAuthInput): Promise<T>;
    deleteBackendStorage<T>(params: DeleteBackendStorageInput): Promise<T>;
    deleteToken<T>(params: DeleteTokenInput): Promise<T>;
    generateBackendAPIModels<T>(params: GenerateBackendAPIModelsInput): Promise<T>;
    getBackend<T>(params: GetBackendInput): Promise<T>;
    getBackendAPI<T>(params: GetBackendAPIInput): Promise<T>;
    getBackendAPIModels<T>(params: GetBackendAPIModelsInput): Promise<T>;
    getBackendAuth<T>(params: GetBackendAuthInput): Promise<T>;
    getBackendJob<T>(params: GetBackendJobInput): Promise<T>;
    getBackendStorage<T>(params: GetBackendStorageInput): Promise<T>;
    getToken<T>(params: GetTokenInput): Promise<T>;
    importBackendAuth<T>(params: ImportBackendAuthInput): Promise<T>;
    importBackendStorage<T>(params: ImportBackendStorageInput): Promise<T>;
    listBackendJobs<T>(params: ListBackendJobsInput): Promise<T>;
    listS3Buckets<T>(params: ListS3BucketsInput): Promise<T>;
    removeAllBackends<T>(params: RemoveAllBackendsInput): Promise<T>;
    removeBackendConfig<T>(params: RemoveBackendConfigInput): Promise<T>;
    updateBackendAPI<T>(params: UpdateBackendAPIInput): Promise<T>;
    updateBackendAuth<T>(params: UpdateBackendAuthInput): Promise<T>;
    updateBackendConfig<T>(params: UpdateBackendConfigInput): Promise<T>;
    updateBackendJob<T>(params: UpdateBackendJobInput): Promise<T>;
    updateBackendStorage<T>(params: UpdateBackendStorageInput): Promise<T>;
}
//# sourceMappingURL=AmplifyBackend.d.ts.map