/**
 *  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 * as sagemaker from 'aws-cdk-lib/aws-sagemaker';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import * as iam from 'aws-cdk-lib/aws-iam';
import { Construct } from 'constructs';
export interface BuildSagemakerNotebookProps {
    /**
     * Optional user provided props for CfnNotebookInstanceProps
     *
     * @default - Default props are used
     */
    readonly sagemakerNotebookProps?: sagemaker.CfnNotebookInstanceProps | any;
    /**
     * Optional user provided props to deploy inside vpc
     *
     * @default - true
     */
    readonly deployInsideVpc?: boolean;
    /**
     * An optional, Existing instance of notebook object.
     * If this is set then the sagemakerNotebookProps is ignored
     *
     * @default - None
     */
    readonly existingNotebookObj?: sagemaker.CfnNotebookInstance;
    /**
     * IAM Role Arn for Sagemaker NoteBookInstance
     *
     * @default - None
     */
    readonly role: iam.Role;
}
export interface BuildSagemakerNotebookResponse {
    readonly notebook: sagemaker.CfnNotebookInstance;
    readonly vpc?: ec2.IVpc;
    readonly securityGroup?: ec2.SecurityGroup;
}
/**
 * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
 *
 * The constructs deploying Sagemaker services only deploy Sagemaker Endpoints, Endpoint
 * Configurations and (already developed) Models. There are no Constructs that deploy Notebooks.
 * There doesn't appear to be any references to this function outside the unit test file - so
 * this function is unneccessary.
 */
export declare function buildSagemakerNotebook(scope: Construct, id: string, props: BuildSagemakerNotebookProps): BuildSagemakerNotebookResponse;
export interface BuildSagemakerEndpointProps {
    /**
     * Existing Sagemaker Endpoint object, if this is set then the modelProps, endpointConfigProps, and endpointProps are ignored
     *
     * @default - None
     */
    readonly existingSagemakerEndpointObj?: sagemaker.CfnEndpoint;
    /**
     * User provided props to create Sagemaker Model
     *
     * @default - None
     */
    readonly modelProps?: sagemaker.CfnModelProps | any;
    /**
     * User provided props to create Sagemaker Endpoint Configuration
     *
     * @default - None
     */
    readonly endpointConfigProps?: sagemaker.CfnEndpointConfigProps;
    /**
     * User provided props to create Sagemaker Endpoint
     *
     * @default - None
     */
    readonly endpointProps?: sagemaker.CfnEndpointProps;
    /**
     * A VPC where the Sagemaker Endpoint will be placed
     *
     * @default - None
     */
    readonly vpc?: ec2.IVpc;
}
export interface BuildSagemakerEndpointResponse {
    readonly endpoint: sagemaker.CfnEndpoint;
    readonly endpointConfig?: sagemaker.CfnEndpointConfig;
    readonly model?: sagemaker.CfnModel;
}
/**
 * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
 */
export declare function BuildSagemakerEndpoint(scope: Construct, id: string, props: BuildSagemakerEndpointProps): BuildSagemakerEndpointResponse;
export interface DeploySagemakerEndpointResponse {
    readonly endpoint: sagemaker.CfnEndpoint;
    readonly endpointConfig?: sagemaker.CfnEndpointConfig;
    readonly model?: sagemaker.CfnModel;
}
/**
 * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
 */
export declare function deploySagemakerEndpoint(scope: Construct, id: string, props: BuildSagemakerEndpointProps): DeploySagemakerEndpointResponse;
/**
 * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
 */
export declare function createSagemakerModel(scope: Construct, modelProps: sagemaker.CfnModelProps, role: iam.Role, vpc?: ec2.IVpc): sagemaker.CfnModel;
/**
 * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
 */
export declare function createSagemakerEndpointConfig(scope: Construct, id: string, modelName: string, endpointConfigProps?: sagemaker.CfnEndpointConfigProps): sagemaker.CfnEndpointConfig;
/**
 * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
 */
export declare function createSagemakerEndpoint(scope: Construct, endpointConfigName: string, endpointProps?: sagemaker.CfnEndpointProps): sagemaker.CfnEndpoint;
export interface SagemakerProps {
    readonly existingSagemakerEndpointObj?: sagemaker.CfnEndpoint;
    readonly endpointProps?: sagemaker.CfnEndpointProps;
}
export declare function CheckSagemakerProps(propsObject: SagemakerProps | any): void;
