export interface DataIntegrationEventDatasetTargetConfiguration {
    /** The datalake dataset ARN identifier. */
    datasetIdentifier: string;
    /** The target dataset load operation type. */
    operationType: 'APPEND' | 'UPSERT' | 'DELETE';
}
export interface DataIntegrationFlowSource {
    /** The DataIntegrationFlow source type. */
    sourceType: 'S3' | 'DATASET';
    /** The DataIntegrationFlow source name that can be used as table alias in SQL transformation query. */
    sourceName: string;
    /** The S3 DataIntegrationFlow source. */
    s3Source?: any;
    /** The dataset DataIntegrationFlow source. */
    datasetSource?: any;
}
export interface DataIntegrationFlowSQLTransformationConfiguration {
    /** The transformation SQL query body based on SparkSQL. */
    query: string;
}
export interface DataIntegrationFlowTransformation {
    /** The DataIntegrationFlow transformation type. */
    transformationType: 'SQL' | 'NONE';
    /** The SQL DataIntegrationFlow transformation configuration. */
    sqlTransformation?: DataIntegrationFlowSQLTransformationConfiguration;
}
export interface DataIntegrationFlowS3TargetConfiguration {
    /** The bucketName of the S3 target objects. */
    bucketName: string;
    /** The prefix of the S3 target objects. */
    prefix: string;
    /** The S3 DataIntegrationFlow target options. */
    options?: any;
}
export interface DataIntegrationFlowDatasetTargetConfiguration {
    /** The dataset ARN. */
    datasetIdentifier: string;
    /** The dataset DataIntegrationFlow target options. */
    options?: any;
}
export interface DataIntegrationFlowTarget {
    /** The DataIntegrationFlow target type. */
    targetType: 'S3' | 'DATASET';
    /** The S3 DataIntegrationFlow target. */
    s3Target?: DataIntegrationFlowS3TargetConfiguration;
    /** The dataset DataIntegrationFlow target. Note that for AWS Supply Chain dataset under asc namespace, it has a connection_id internal field that is not allowed to be provided by client directly, they wi */
    datasetTarget?: DataIntegrationFlowDatasetTargetConfiguration;
}
/** The request parameters for CreateBillOfMaterialsImportJob. */
export interface CreateBillOfMaterialsImportJobInput {
    /** The AWS Supply Chain instance identifier. */
    instanceId: string;
    /** The S3 URI of the CSV file to be imported. The bucket must grant permissions for AWS Supply Chain to read the file. */
    s3uri: string;
    /** An idempotency token ensures the API request is only completed no more than once. This way, retrying the request will not trigger the operation multiple times. A client token is a unique, case-sensiti */
    clientToken?: string;
}
/** The request parameters for CreateInstance. */
export interface CreateInstanceInput {
    /** The client token for idempotency. */
    clientToken?: string;
    /** The AWS Supply Chain instance description. */
    instanceDescription?: string;
    /** The AWS Supply Chain instance name. */
    instanceName?: string;
    /** The ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption. This is required if you do not want to use the Amazon Web Services owned KMS key. If you don't provid */
    kmsKeyArn?: string;
    /** The Amazon Web Services tags of an instance to be created. */
    tags?: Record<string, string>;
    /** The DNS subdomain of the web app. This would be "example" in the URL "example.scn.global.on.aws". You can set this to a custom value, as long as the domain isn't already being used by someone else. Th */
    webAppDnsDomain?: string;
}
/** The request parameters for DeleteDataIntegrationFlow. */
export interface DeleteDataIntegrationFlowInput {
    /** The Amazon Web Services Supply Chain instance identifier. */
    instanceId: string;
    /** The name of the DataIntegrationFlow to be deleted. */
    name: string;
}
/** The request parameters of DeleteDataLakeDataset. */
export interface DeleteDataLakeDatasetInput {
    /** The AWS Supply Chain instance identifier. */
    instanceId: string;
    /** The name of the dataset. For asc namespace, the name must be one of the supported data entities under https://docs.aws.amazon.com/aws-supply-chain/latest/userguide/data-model-asc.html. */
    name: string;
    /** The namespace of the dataset, besides the custom defined namespace, every instance comes with below pre-defined namespaces: asc - For information on the Amazon Web Services Supply Chain supported data */
    namespace: string;
}
/** The request parameters of DeleteDataLakeNamespace. */
export interface DeleteDataLakeNamespaceInput {
    /** The AWS Supply Chain instance identifier. */
    instanceId: string;
    /** The name of the namespace. Noted you cannot delete pre-defined namespace like asc, default which are only deleted through instance deletion. */
    name: string;
}
/** The request parameters for DeleteInstance. */
export interface DeleteInstanceInput {
    /** The AWS Supply Chain instance identifier. */
    instanceId: string;
}
/** The request parameters for GetBillOfMaterialsImportJob. */
export interface GetBillOfMaterialsImportJobInput {
    /** The AWS Supply Chain instance identifier. */
    instanceId: string;
    /** The BillOfMaterialsImportJob identifier. */
    jobId: string;
}
/** The request parameters for GetDataIntegrationEvent. */
export interface GetDataIntegrationEventInput {
    /** The unique event identifier. */
    eventId: string;
    /** The Amazon Web Services Supply Chain instance identifier. */
    instanceId: string;
}
/** The request parameters for GetDataIntegrationFlow. */
export interface GetDataIntegrationFlowInput {
    /** The Amazon Web Services Supply Chain instance identifier. */
    instanceId: string;
    /** The name of the DataIntegrationFlow created. */
    name: string;
}
/** The request parameters of GetFlowExecution. */
export interface GetDataIntegrationFlowExecutionInput {
    /** The flow execution identifier. */
    executionId: string;
    /** The flow name. */
    flowName: string;
    /** The AWS Supply Chain instance identifier. */
    instanceId: string;
}
/** The request parameters for GetDataLakeDataset. */
export interface GetDataLakeDatasetInput {
    /** The Amazon Web Services Supply Chain instance identifier. */
    instanceId: string;
    /** The name of the dataset. For asc namespace, the name must be one of the supported data entities under https://docs.aws.amazon.com/aws-supply-chain/latest/userguide/data-model-asc.html. */
    name: string;
    /** The namespace of the dataset, besides the custom defined namespace, every instance comes with below pre-defined namespaces: asc - For information on the Amazon Web Services Supply Chain supported data */
    namespace: string;
}
/** The request parameters for GetDataLakeNamespace. */
export interface GetDataLakeNamespaceInput {
    /** The Amazon Web Services Supply Chain instance identifier. */
    instanceId: string;
    /** The name of the namespace. Besides the namespaces user created, you can also specify the pre-defined namespaces: asc - Pre-defined namespace containing Amazon Web Services Supply Chain supported datas */
    name: string;
}
/** The request parameters for GetInstance. */
export interface GetInstanceInput {
    /** The AWS Supply Chain instance identifier */
    instanceId: string;
}
/** The request parameters for ListDataIntegrationEvents. */
export interface ListDataIntegrationEventsInput {
    /** The Amazon Web Services Supply Chain instance identifier. */
    instanceId: string;
    /** List data integration events for the specified eventType. */
    eventType?: 'scn.data.forecast' | 'scn.data.inventorylevel' | 'scn.data.inboundorder' | 'scn.data.inboundorderline' | 'scn.data.inboundorderlineschedule' | 'scn.data.outboundorderline' | 'scn.data.outboundshipment' | 'scn.data.processheader' | 'scn.data.processoperation' | 'scn.data.processproduct' | 'scn.data.reservation' | 'scn.data.shipment' | 'scn.data.shipmentstop' | 'scn.data.shipmentstoporder' | 'scn.data.supplyplan' | 'scn.data.dataset';
    /** Specify the maximum number of data integration events to fetch in one paginated request. */
    maxResults?: number;
    /** The pagination token to fetch the next page of the data integration events. */
    nextToken?: string;
}
/** The request parameters of ListFlowExecutions. */
export interface ListDataIntegrationFlowExecutionsInput {
    /** The flow name. */
    flowName: string;
    /** The AWS Supply Chain instance identifier. */
    instanceId: string;
    /** The number to specify the max number of flow executions to fetch in this paginated request. */
    maxResults?: number;
    /** The pagination token to fetch next page of flow executions. */
    nextToken?: string;
}
/** The request parameters for ListDataIntegrationFlows. */
export interface ListDataIntegrationFlowsInput {
    /** The Amazon Web Services Supply Chain instance identifier. */
    instanceId: string;
    /** Specify the maximum number of DataIntegrationFlows to fetch in one paginated request. */
    maxResults?: number;
    /** The pagination token to fetch the next page of the DataIntegrationFlows. */
    nextToken?: string;
}
/** The request parameters of ListDataLakeDatasets. */
export interface ListDataLakeDatasetsInput {
    /** The Amazon Web Services Supply Chain instance identifier. */
    instanceId: string;
    /** The namespace of the dataset, besides the custom defined namespace, every instance comes with below pre-defined namespaces: asc - For information on the Amazon Web Services Supply Chain supported data */
    namespace: string;
    /** The max number of datasets to fetch in this paginated request. */
    maxResults?: number;
    /** The pagination token to fetch next page of datasets. */
    nextToken?: string;
}
/** The request parameters of ListDataLakeNamespaces. */
export interface ListDataLakeNamespacesInput {
    /** The Amazon Web Services Supply Chain instance identifier. */
    instanceId: string;
    /** The max number of namespaces to fetch in this paginated request. */
    maxResults?: number;
    /** The pagination token to fetch next page of namespaces. */
    nextToken?: string;
}
/** The request parameters for ListInstances. */
export interface ListInstancesInput {
    /** The filter to ListInstances based on their names. */
    instanceNameFilter?: string[];
    /** The filter to ListInstances based on their state. */
    instanceStateFilter?: 'Initializing' | 'Active' | 'CreateFailed' | 'DeleteFailed' | 'Deleting' | 'Deleted'[];
    /** Specify the maximum number of instances to fetch in this paginated request. */
    maxResults?: number;
    /** The pagination token to fetch the next page of instances. */
    nextToken?: string;
}
/** The request parameters of ListTagsForResource. */
export interface ListTagsForResourceInput {
    /** The Amazon Web Services Supply chain resource ARN that needs tags to be listed. */
    resourceArn: string;
}
/** The request parameters for SendDataIntegrationEvent. */
export interface SendDataIntegrationEventInput {
    /** The data payload of the event, should follow the data schema of the target dataset, or see Data entities supported in AWS Supply Chain. To send single data record, use JsonObject format; to send multi */
    data: string;
    /** Event identifier (for example, orderId for InboundOrder) used for data sharding or partitioning. Noted under one eventGroupId of same eventType and instanceId, events are processed sequentially in the */
    eventGroupId: string;
    /** The data event type. scn.data.dataset - Send data directly to any specified dataset. scn.data.supplyplan - Send data to supply_plan dataset. scn.data.shipmentstoporder - Send data to shipment_stop_ord */
    eventType: 'scn.data.forecast' | 'scn.data.inventorylevel' | 'scn.data.inboundorder' | 'scn.data.inboundorderline' | 'scn.data.inboundorderlineschedule' | 'scn.data.outboundorderline' | 'scn.data.outboundshipment' | 'scn.data.processheader' | 'scn.data.processoperation' | 'scn.data.processproduct' | 'scn.data.reservation' | 'scn.data.shipment' | 'scn.data.shipmentstop' | 'scn.data.shipmentstoporder' | 'scn.data.supplyplan' | 'scn.data.dataset';
    /** The AWS Supply Chain instance identifier. */
    instanceId: string;
    /** The idempotent client token. The token is active for 8 hours, and within its lifetime, it ensures the request completes only once upon retry with same client token. If omitted, the AWS SDK generates a */
    clientToken?: string;
    /** The target dataset configuration for scn.data.dataset event type. */
    datasetTarget?: DataIntegrationEventDatasetTargetConfiguration;
    /** The timestamp (in epoch seconds) associated with the event. If not provided, it will be assigned with current timestamp. */
    eventTimestamp?: string;
}
/** The request parameters of TagResource. */
export interface TagResourceInput {
    /** The Amazon Web Services Supply chain resource ARN that needs to be tagged. */
    resourceArn: string;
    /** The tags of the Amazon Web Services Supply chain resource to be created. */
    tags: Record<string, string>;
}
/** The request parameters of UntagResource. */
export interface UntagResourceInput {
    /** The Amazon Web Services Supply chain resource ARN that needs to be untagged. */
    resourceArn: string;
    /** The list of tag keys to be deleted for an Amazon Web Services Supply Chain resource. */
    tagKeys: string[];
}
/** The request parameters for UpdateDataIntegrationFlow. */
export interface UpdateDataIntegrationFlowInput {
    /** The Amazon Web Services Supply Chain instance identifier. */
    instanceId: string;
    /** The name of the DataIntegrationFlow to be updated. */
    name: string;
    /** The new source configurations for the DataIntegrationFlow. */
    sources?: DataIntegrationFlowSource[];
    /** The new target configurations for the DataIntegrationFlow. */
    target?: DataIntegrationFlowTarget;
    /** The new transformation configurations for the DataIntegrationFlow. */
    transformation?: DataIntegrationFlowTransformation;
}
/** The request parameters of UpdateDataLakeDataset. */
export interface UpdateDataLakeDatasetInput {
    /** The Amazon Web Services Chain instance identifier. */
    instanceId: string;
    /** The name of the dataset. For asc namespace, the name must be one of the supported data entities under https://docs.aws.amazon.com/aws-supply-chain/latest/userguide/data-model-asc.html. */
    name: string;
    /** The namespace of the dataset, besides the custom defined namespace, every instance comes with below pre-defined namespaces: asc - For information on the Amazon Web Services Supply Chain supported data */
    namespace: string;
    /** The updated description of the data lake dataset. */
    description?: string;
}
/** The request parameters of UpdateDataLakeNamespace. */
export interface UpdateDataLakeNamespaceInput {
    /** The Amazon Web Services Chain instance identifier. */
    instanceId: string;
    /** The name of the namespace. Noted you cannot update namespace with name starting with asc, default, scn, aws, amazon, amzn */
    name: string;
    /** The updated description of the data lake namespace. */
    description?: string;
}
/** The request parameters for UpdateInstance. */
export interface UpdateInstanceInput {
    /** The AWS Supply Chain instance identifier. */
    instanceId: string;
    /** The AWS Supply Chain instance description. */
    instanceDescription?: string;
    /** The AWS Supply Chain instance name. */
    instanceName?: string;
}
/** SupplyChain service binding for Step Functions SDK integrations. */
export declare class SupplyChain {
    constructor();
    createBillOfMaterialsImportJob<T>(params: CreateBillOfMaterialsImportJobInput): Promise<T>;
    createInstance<T>(params: CreateInstanceInput): Promise<T>;
    deleteDataIntegrationFlow<T>(params: DeleteDataIntegrationFlowInput): Promise<T>;
    deleteDataLakeDataset<T>(params: DeleteDataLakeDatasetInput): Promise<T>;
    deleteDataLakeNamespace<T>(params: DeleteDataLakeNamespaceInput): Promise<T>;
    deleteInstance<T>(params: DeleteInstanceInput): Promise<T>;
    getBillOfMaterialsImportJob<T>(params: GetBillOfMaterialsImportJobInput): Promise<T>;
    getDataIntegrationEvent<T>(params: GetDataIntegrationEventInput): Promise<T>;
    getDataIntegrationFlow<T>(params: GetDataIntegrationFlowInput): Promise<T>;
    getDataIntegrationFlowExecution<T>(params: GetDataIntegrationFlowExecutionInput): Promise<T>;
    getDataLakeDataset<T>(params: GetDataLakeDatasetInput): Promise<T>;
    getDataLakeNamespace<T>(params: GetDataLakeNamespaceInput): Promise<T>;
    getInstance<T>(params: GetInstanceInput): Promise<T>;
    listDataIntegrationEvents<T>(params: ListDataIntegrationEventsInput): Promise<T>;
    listDataIntegrationFlowExecutions<T>(params: ListDataIntegrationFlowExecutionsInput): Promise<T>;
    listDataIntegrationFlows<T>(params: ListDataIntegrationFlowsInput): Promise<T>;
    listDataLakeDatasets<T>(params: ListDataLakeDatasetsInput): Promise<T>;
    listDataLakeNamespaces<T>(params: ListDataLakeNamespacesInput): Promise<T>;
    listInstances<T>(params: ListInstancesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    sendDataIntegrationEvent<T>(params: SendDataIntegrationEventInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateDataIntegrationFlow<T>(params: UpdateDataIntegrationFlowInput): Promise<T>;
    updateDataLakeDataset<T>(params: UpdateDataLakeDatasetInput): Promise<T>;
    updateDataLakeNamespace<T>(params: UpdateDataLakeNamespaceInput): Promise<T>;
    updateInstance<T>(params: UpdateInstanceInput): Promise<T>;
}
//# sourceMappingURL=SupplyChain.d.ts.map