export interface AutoExportRevisionToS3RequestDetails {
    /** Encryption configuration for the auto export job. */
    Encryption?: any;
    /** A revision destination is the Amazon S3 bucket folder destination to where the export will be sent. */
    RevisionDestination: any;
}
export interface Action {
    /** Details for the export revision to Amazon S3 action. */
    ExportRevisionToS3?: AutoExportRevisionToS3RequestDetails;
}
export interface RevisionPublished {
    /** The data set ID of the published revision. */
    DataSetId: string;
}
export interface Event {
    /** What occurs to start the revision publish action. */
    RevisionPublished?: RevisionPublished;
}
export interface ExportAssetToSignedUrlRequestDetails {
    /** The unique identifier for the asset that is exported to a signed URL. */
    AssetId: string;
    /** The unique identifier for the data set associated with this export job. */
    DataSetId: string;
    /** The unique identifier for the revision associated with this export request. */
    RevisionId: string;
}
export interface ExportAssetsToS3RequestDetails {
    /** The destination for the asset. */
    AssetDestinations: any[];
    /** The unique identifier for the data set associated with this export job. */
    DataSetId: string;
    /** Encryption configuration for the export job. */
    Encryption?: any;
    /** The unique identifier for the revision associated with this export request. */
    RevisionId: string;
}
export interface ExportRevisionsToS3RequestDetails {
    /** The unique identifier for the data set associated with this export job. */
    DataSetId: string;
    /** Encryption configuration for the export job. */
    Encryption?: any;
    /** The destination for the revision. */
    RevisionDestinations: any[];
}
export interface ImportAssetFromSignedUrlRequestDetails {
    /** The name of the asset. When importing from Amazon S3, the Amazon S3 object key is used as the asset name. */
    AssetName: string;
    /** The unique identifier for the data set associated with this import job. */
    DataSetId: string;
    /** The Base64-encoded Md5 hash for the asset, used to ensure the integrity of the file at that location. */
    Md5Hash: string;
    /** The unique identifier for the revision associated with this import request. */
    RevisionId: string;
}
export interface ImportAssetsFromS3RequestDetails {
    /** Is a list of Amazon S3 bucket and object key pairs. */
    AssetSources: any[];
    /** The unique identifier for the data set associated with this import job. */
    DataSetId: string;
    /** The unique identifier for the revision associated with this import request. */
    RevisionId: string;
}
export interface ImportAssetsFromRedshiftDataSharesRequestDetails {
    /** A list of Amazon Redshift datashare assets. */
    AssetSources: any[];
    /** The unique identifier for the data set associated with this import job. */
    DataSetId: string;
    /** The unique identifier for the revision associated with this import job. */
    RevisionId: string;
}
export interface ImportAssetFromApiGatewayApiRequestDetails {
    /** The API description. Markdown supported. */
    ApiDescription?: string;
    /** The API Gateway API ID. */
    ApiId: string;
    /** The API Gateway API key. */
    ApiKey?: string;
    /** The API name. */
    ApiName: string;
    /** The Base64-encoded MD5 hash of the OpenAPI 3.0 JSON API specification file. It is used to ensure the integrity of the file. */
    ApiSpecificationMd5Hash: string;
    /** The data set ID. */
    DataSetId: string;
    /** The protocol type. */
    ProtocolType: 'REST';
    /** The revision ID. */
    RevisionId: string;
    /** The API stage. */
    Stage: string;
}
export interface CreateS3DataAccessFromS3BucketRequestDetails {
    /** Details about the S3 data access source asset. */
    AssetSource: any;
    /** The unique identifier for the data set associated with the creation of this Amazon S3 data access. */
    DataSetId: string;
    /** The unique identifier for a revision. */
    RevisionId: string;
}
export interface ImportAssetsFromLakeFormationTagPolicyRequestDetails {
    /** The identifier for the AWS Glue Data Catalog. */
    CatalogId: string;
    /** A structure for the database object. */
    Database?: any;
    /** A structure for the table object. */
    Table?: any;
    /** The IAM role's ARN that allows AWS Data Exchange to assume the role and grant and revoke permissions of subscribers to AWS Lake Formation data permissions. */
    RoleArn: string;
    /** The unique identifier for the data set associated with this import job. */
    DataSetId: string;
    /** The unique identifier for the revision associated with this import job. */
    RevisionId: string;
}
export interface RequestDetails {
    /** Details about the export to signed URL request. */
    ExportAssetToSignedUrl?: ExportAssetToSignedUrlRequestDetails;
    /** Details about the export to Amazon S3 request. */
    ExportAssetsToS3?: ExportAssetsToS3RequestDetails;
    /** Details about the export to Amazon S3 request. */
    ExportRevisionsToS3?: ExportRevisionsToS3RequestDetails;
    /** Details about the import from Amazon S3 request. */
    ImportAssetFromSignedUrl?: ImportAssetFromSignedUrlRequestDetails;
    /** Details about the import asset from API Gateway API request. */
    ImportAssetsFromS3?: ImportAssetsFromS3RequestDetails;
    /** Details from an import from Amazon Redshift datashare request. */
    ImportAssetsFromRedshiftDataShares?: ImportAssetsFromRedshiftDataSharesRequestDetails;
    /** Details about the import from signed URL request. */
    ImportAssetFromApiGatewayApi?: ImportAssetFromApiGatewayApiRequestDetails;
    /** Details of the request to create S3 data access from the Amazon S3 bucket. */
    CreateS3DataAccessFromS3Bucket?: CreateS3DataAccessFromS3BucketRequestDetails;
    /** Request details for the ImportAssetsFromLakeFormationTagPolicy job. */
    ImportAssetsFromLakeFormationTagPolicy?: ImportAssetsFromLakeFormationTagPolicyRequestDetails;
}
export interface ScopeDetails {
    /** Underlying LF resources that will be affected by this notification. */
    LakeFormationTagPolicies?: any[];
    /** Underlying Redshift resources that will be affected by this notification. */
    RedshiftDataShares?: any[];
    /** Underlying S3 resources that will be affected by this notification. */
    S3DataAccesses?: any[];
}
export interface DataUpdateRequestDetails {
    /** A datetime in the past when the data was updated. This typically means that the underlying resource supporting the data set was updated. */
    DataUpdatedAt?: string;
}
export interface DeprecationRequestDetails {
    /** A datetime in the future when the data set will be deprecated. */
    DeprecationAt: string;
}
export interface SchemaChangeRequestDetails {
    /** List of schema changes happening in the scope of this notification. This can have up to 100 entries. */
    Changes?: any[];
    /** A date in the future when the schema change is taking effect. */
    SchemaChangeAt: string;
}
export interface NotificationDetails {
    /** Extra details specific to a data update type notification. */
    DataUpdate?: DataUpdateRequestDetails;
    /** Extra details specific to a deprecation type notification. */
    Deprecation?: DeprecationRequestDetails;
    /** Extra details specific to a schema change type notification. */
    SchemaChange?: SchemaChangeRequestDetails;
}
export interface AcceptDataGrantInput {
    /** The Amazon Resource Name (ARN) of the data grant to accept. */
    DataGrantArn: string;
}
export interface CancelJobInput {
    /** The unique identifier for a job. */
    JobId: string;
}
export interface CreateDataGrantInput {
    /** The distribution scope of the data grant. */
    GrantDistributionScope: 'AWS_ORGANIZATION' | 'NONE';
    /** The name of the data grant. */
    Name: string;
    /** The Amazon Web Services account ID of the data grant receiver. */
    ReceiverPrincipal: string;
    /** The ID of the data set used to create the data grant. */
    SourceDataSetId: string;
    /** The description of the data grant. */
    Description?: string;
    /** The timestamp of when access to the associated data set ends. */
    EndsAt?: string;
    /** The tags to add to the data grant. A tag is a key-value pair. */
    Tags?: Record<string, string>;
}
export interface CreateDataSetInput {
    /** The type of asset that is added to a data set. */
    AssetType: 'S3_SNAPSHOT' | 'REDSHIFT_DATA_SHARE' | 'API_GATEWAY_API' | 'S3_DATA_ACCESS' | 'LAKE_FORMATION_DATA_PERMISSION';
    /** A description for the data set. This value can be up to 16,348 characters long. */
    Description: string;
    /** The name of the data set. */
    Name: string;
    /** A data set tag is an optional label that you can assign to a data set when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also */
    Tags?: Record<string, string>;
}
export interface CreateEventActionInput {
    /** What occurs after a certain event. */
    Action: Action;
    /** What occurs to start an action. */
    Event: Event;
    /** Key-value pairs that you can associate with the event action. */
    Tags?: Record<string, string>;
}
export interface CreateJobInput {
    /** The details for the CreateJob request. */
    Details: RequestDetails;
    /** The type of job to be created. */
    Type: 'IMPORT_ASSETS_FROM_S3' | 'IMPORT_ASSET_FROM_SIGNED_URL' | 'EXPORT_ASSETS_TO_S3' | 'EXPORT_ASSET_TO_SIGNED_URL' | 'EXPORT_REVISIONS_TO_S3' | 'IMPORT_ASSETS_FROM_REDSHIFT_DATA_SHARES' | 'IMPORT_ASSET_FROM_API_GATEWAY_API' | 'CREATE_S3_DATA_ACCESS_FROM_S3_BUCKET' | 'IMPORT_ASSETS_FROM_LAKE_FORMATION_TAG_POLICY';
}
export interface CreateRevisionInput {
    /** The unique identifier for a data set. */
    DataSetId: string;
    /** An optional comment about the revision. */
    Comment?: string;
    /** A revision tag is an optional label that you can assign to a revision when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also */
    Tags?: Record<string, string>;
}
export interface DeleteAssetInput {
    /** The unique identifier for an asset. */
    AssetId: string;
    /** The unique identifier for a data set. */
    DataSetId: string;
    /** The unique identifier for a revision. */
    RevisionId: string;
}
export interface DeleteDataGrantInput {
    /** The ID of the data grant to delete. */
    DataGrantId: string;
}
export interface DeleteDataSetInput {
    /** The unique identifier for a data set. */
    DataSetId: string;
}
export interface DeleteEventActionInput {
    /** The unique identifier for the event action. */
    EventActionId: string;
}
export interface DeleteRevisionInput {
    /** The unique identifier for a data set. */
    DataSetId: string;
    /** The unique identifier for a revision. */
    RevisionId: string;
}
export interface GetAssetInput {
    /** The unique identifier for an asset. */
    AssetId: string;
    /** The unique identifier for a data set. */
    DataSetId: string;
    /** The unique identifier for a revision. */
    RevisionId: string;
}
export interface GetDataGrantInput {
    /** The ID of the data grant. */
    DataGrantId: string;
}
export interface GetDataSetInput {
    /** The unique identifier for a data set. */
    DataSetId: string;
}
export interface GetEventActionInput {
    /** The unique identifier for the event action. */
    EventActionId: string;
}
export interface GetJobInput {
    /** The unique identifier for a job. */
    JobId: string;
}
export interface GetReceivedDataGrantInput {
    /** The Amazon Resource Name (ARN) of the data grant. */
    DataGrantArn: string;
}
export interface GetRevisionInput {
    /** The unique identifier for a data set. */
    DataSetId: string;
    /** The unique identifier for a revision. */
    RevisionId: string;
}
export interface ListDataGrantsInput {
    /** The maximum number of results to be included in the next page. */
    MaxResults?: number;
    /** The pagination token used to retrieve the next page of results for this operation. */
    NextToken?: string;
}
export interface ListDataSetRevisionsInput {
    /** The unique identifier for a data set. */
    DataSetId: string;
    /** The maximum number of results returned by a single call. */
    MaxResults?: number;
    /** The token value retrieved from a previous call to access the next page of results. */
    NextToken?: string;
}
export interface ListDataSetsInput {
    /** The maximum number of results returned by a single call. */
    MaxResults?: number;
    /** The token value retrieved from a previous call to access the next page of results. */
    NextToken?: string;
    /** A property that defines the data set as OWNED by the account (for providers) or ENTITLED to the account (for subscribers). */
    Origin?: string;
}
export interface ListEventActionsInput {
    /** The unique identifier for the event source. */
    EventSourceId?: string;
    /** The maximum number of results returned by a single call. */
    MaxResults?: number;
    /** The token value retrieved from a previous call to access the next page of results. */
    NextToken?: string;
}
export interface ListJobsInput {
    /** The unique identifier for a data set. */
    DataSetId?: string;
    /** The maximum number of results returned by a single call. */
    MaxResults?: number;
    /** The token value retrieved from a previous call to access the next page of results. */
    NextToken?: string;
    /** The unique identifier for a revision. */
    RevisionId?: string;
}
export interface ListReceivedDataGrantsInput {
    /** The acceptance state of the data grants to list. */
    AcceptanceState?: 'PENDING_RECEIVER_ACCEPTANCE' | 'ACCEPTED'[];
    /** The maximum number of results to be included in the next page. */
    MaxResults?: number;
    /** The pagination token used to retrieve the next page of results for this operation. */
    NextToken?: string;
}
export interface ListRevisionAssetsInput {
    /** The unique identifier for a data set. */
    DataSetId: string;
    /** The unique identifier for a revision. */
    RevisionId: string;
    /** The maximum number of results returned by a single call. */
    MaxResults?: number;
    /** The token value retrieved from a previous call to access the next page of results. */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** An Amazon Resource Name (ARN) that uniquely identifies an AWS resource. */
    ResourceArn: string;
}
export interface RevokeRevisionInput {
    /** The unique identifier for a data set. */
    DataSetId: string;
    /** The unique identifier for a revision. */
    RevisionId: string;
    /** A required comment to inform subscribers of the reason their access to the revision was revoked. */
    RevocationComment: string;
}
export interface SendApiAssetInput {
    /** Asset ID value for the API request. */
    AssetId: string;
    /** Data set ID value for the API request. */
    DataSetId: string;
    /** Revision ID value for the API request. */
    RevisionId: string;
    /** The request body. */
    Body?: string;
    /** HTTP method value for the API request. Alternatively, you can use the appropriate verb in your request. */
    Method?: string;
    /** URI path value for the API request. Alternatively, you can set the URI path directly by invoking /v1/{pathValue}. */
    Path?: string;
    /** Attach query string parameters to the end of the URI (for example, /v1/examplePath?exampleParam=exampleValue). */
    QueryStringParameters?: Record<string, string>;
    /** Any header value prefixed with x-amzn-dataexchange-header- will have that stripped before sending the Asset API request. Use this when you want to override a header that AWS Data Exchange uses. Altern */
    RequestHeaders?: Record<string, string>;
}
export interface SendDataSetNotificationInput {
    /** Affected data set of the notification. */
    DataSetId: string;
    /** The type of the notification. Describing the kind of event the notification is alerting you to. */
    Type: 'DATA_DELAY' | 'DATA_UPDATE' | 'DEPRECATION' | 'SCHEMA_CHANGE';
    /** Idempotency key for the notification, this key allows us to deduplicate notifications that are sent in quick succession erroneously. */
    ClientToken?: string;
    /** Free-form text field for providers to add information about their notifications. */
    Comment?: string;
    /** Extra details specific to this notification type. */
    Details?: NotificationDetails;
    /** Affected scope of this notification such as the underlying resources affected by the notification event. */
    Scope?: ScopeDetails;
}
export interface StartJobInput {
    /** The unique identifier for a job. */
    JobId: string;
}
export interface TagResourceInput {
    /** An Amazon Resource Name (ARN) that uniquely identifies an AWS resource. */
    ResourceArn: string;
    /** A label that consists of a customer-defined key and an optional value. */
    Tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** An Amazon Resource Name (ARN) that uniquely identifies an AWS resource. */
    ResourceArn: string;
    /** The key tags. */
    TagKeys: string[];
}
export interface UpdateAssetInput {
    /** The unique identifier for an asset. */
    AssetId: string;
    /** The unique identifier for a data set. */
    DataSetId: string;
    /** The name of the asset. When importing from Amazon S3, the Amazon S3 object key is used as the asset name. When exporting to Amazon S3, the asset name is used as default target Amazon S3 object key. Wh */
    Name: string;
    /** The unique identifier for a revision. */
    RevisionId: string;
}
export interface UpdateDataSetInput {
    /** The unique identifier for a data set. */
    DataSetId: string;
    /** The description for the data set. */
    Description?: string;
    /** The name of the data set. */
    Name?: string;
}
export interface UpdateEventActionInput {
    /** The unique identifier for the event action. */
    EventActionId: string;
    /** What occurs after a certain event. */
    Action?: Action;
}
export interface UpdateRevisionInput {
    /** The unique identifier for a data set. */
    DataSetId: string;
    /** The unique identifier for a revision. */
    RevisionId: string;
    /** An optional comment about the revision. */
    Comment?: string;
    /** Finalizing a revision tells AWS Data Exchange that your changes to the assets in the revision are complete. After it's in this read-only state, you can publish the revision to your products. */
    Finalized?: boolean;
}
/** DataExchange service binding for Step Functions SDK integrations. */
export declare class DataExchange {
    constructor();
    acceptDataGrant<T>(params: AcceptDataGrantInput): Promise<T>;
    cancelJob<T>(params: CancelJobInput): Promise<T>;
    createDataGrant<T>(params: CreateDataGrantInput): Promise<T>;
    createDataSet<T>(params: CreateDataSetInput): Promise<T>;
    createEventAction<T>(params: CreateEventActionInput): Promise<T>;
    createJob<T>(params: CreateJobInput): Promise<T>;
    createRevision<T>(params: CreateRevisionInput): Promise<T>;
    deleteAsset<T>(params: DeleteAssetInput): Promise<T>;
    deleteDataGrant<T>(params: DeleteDataGrantInput): Promise<T>;
    deleteDataSet<T>(params: DeleteDataSetInput): Promise<T>;
    deleteEventAction<T>(params: DeleteEventActionInput): Promise<T>;
    deleteRevision<T>(params: DeleteRevisionInput): Promise<T>;
    getAsset<T>(params: GetAssetInput): Promise<T>;
    getDataGrant<T>(params: GetDataGrantInput): Promise<T>;
    getDataSet<T>(params: GetDataSetInput): Promise<T>;
    getEventAction<T>(params: GetEventActionInput): Promise<T>;
    getJob<T>(params: GetJobInput): Promise<T>;
    getReceivedDataGrant<T>(params: GetReceivedDataGrantInput): Promise<T>;
    getRevision<T>(params: GetRevisionInput): Promise<T>;
    listDataGrants<T>(params: ListDataGrantsInput): Promise<T>;
    listDataSetRevisions<T>(params: ListDataSetRevisionsInput): Promise<T>;
    listDataSets<T>(params: ListDataSetsInput): Promise<T>;
    listEventActions<T>(params: ListEventActionsInput): Promise<T>;
    listJobs<T>(params: ListJobsInput): Promise<T>;
    listReceivedDataGrants<T>(params: ListReceivedDataGrantsInput): Promise<T>;
    listRevisionAssets<T>(params: ListRevisionAssetsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    revokeRevision<T>(params: RevokeRevisionInput): Promise<T>;
    sendApiAsset<T>(params: SendApiAssetInput): Promise<T>;
    sendDataSetNotification<T>(params: SendDataSetNotificationInput): Promise<T>;
    startJob<T>(params: StartJobInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateAsset<T>(params: UpdateAssetInput): Promise<T>;
    updateDataSet<T>(params: UpdateDataSetInput): Promise<T>;
    updateEventAction<T>(params: UpdateEventActionInput): Promise<T>;
    updateRevision<T>(params: UpdateRevisionInput): Promise<T>;
}
//# sourceMappingURL=DataExchange.d.ts.map