export interface PropertyValueEntry {
    /** An object that contains information about the entity that has the property. */
    entityPropertyReference: any;
    /** A list of objects that specify time series property values. */
    propertyValues?: any[];
}
export interface PropertyDefinitionRequest {
    /** An object that contains information about the data type. */
    dataType?: any;
    /** A Boolean value that specifies whether the property is required. */
    isRequiredInEntity?: boolean;
    /** A Boolean value that specifies whether the property ID comes from an external data store. */
    isExternalId?: boolean;
    /** A Boolean value that specifies whether the property is stored externally. */
    isStoredExternally?: boolean;
    /** A Boolean value that specifies whether the property consists of time series data. */
    isTimeSeries?: boolean;
    /** An object that contains the default value. */
    defaultValue?: any;
    /** A mapping that specifies configuration information about the property. Use this field to specify information that you read from and write to an external source. */
    configuration?: Record<string, any>;
    /** A friendly name for the property. */
    displayName?: string;
}
export interface FunctionRequest {
    /** The required properties of the function. */
    requiredProperties?: any[];
    /** The scope of the function. */
    scope?: 'ENTITY' | 'WORKSPACE';
    /** The data connector. */
    implementedBy?: any;
}
export interface PropertyGroupRequest {
    /** The group type. */
    groupType?: 'TABULAR';
    /** The names of properties. */
    propertyNames?: any[];
}
export interface CompositeComponentTypeRequest {
    /** This is the componentTypeId that the compositeComponentType refers to. */
    componentTypeId?: string;
}
export interface ComponentRequest {
    /** The description of the component request. */
    description?: string;
    /** The ID of the component type. */
    componentTypeId?: string;
    /** An object that maps strings to the properties to set in the component type. Each string in the mapping must be unique to this object. */
    properties?: Record<string, any>;
    /** The property groups. */
    propertyGroups?: Record<string, any>;
}
export interface CompositeComponentRequest {
    /** The description of the component type. */
    description?: string;
    /** This is an object that maps strings to the properties to set in the component type. Each string in the mapping must be unique to this object. */
    properties?: Record<string, any>;
    /** The property groups. */
    propertyGroups?: Record<string, any>;
}
export interface SourceConfiguration {
    /** The source configuration type. */
    type: 's3' | 'iotsitewise' | 'iottwinmaker';
    /** The source configuration S3 configuration. */
    s3Configuration?: any;
    /** The source configuration IoT SiteWise configuration. */
    iotSiteWiseConfiguration?: any;
    /** The source configuration IoT TwinMaker configuration. */
    iotTwinMakerConfiguration?: any;
}
export interface S3DestinationConfiguration {
    /** The S3 destination configuration location. */
    location: string;
}
export interface IotTwinMakerDestinationConfiguration {
    /** The IoT TwinMaker workspace. */
    workspace: string;
}
export interface DestinationConfiguration {
    /** The destination type. */
    type: 's3' | 'iotsitewise' | 'iottwinmaker';
    /** The metadata transfer job S3 configuration. [need to add S3 entity] */
    s3Configuration?: S3DestinationConfiguration;
    /** The metadata transfer job Amazon Web Services IoT TwinMaker configuration. */
    iotTwinMakerConfiguration?: IotTwinMakerDestinationConfiguration;
}
export interface TabularConditions {
    /** Filter criteria that orders the output. It can be sorted in ascending or descending order. */
    orderBy?: any[];
    /** You can filter the request using various logical operators and a key-value format. For example: {"key": "serverType", "value": "webServer"} */
    propertyFilters?: any[];
}
export interface PropertyFilter {
    /** The property name associated with this property filter. */
    propertyName?: string;
    /** The operator associated with this property filter. */
    operator?: string;
    /** The value associated with this property filter. */
    value?: any;
}
export interface InterpolationParameters {
    /** The interpolation type. */
    interpolationType?: 'LINEAR';
    /** The interpolation time interval in seconds. */
    intervalInSeconds?: number;
}
export interface ComponentUpdateRequest {
    /** The update type of the component update request. */
    updateType?: 'CREATE' | 'UPDATE' | 'DELETE';
    /** The description of the component type. */
    description?: string;
    /** The ID of the component type. */
    componentTypeId?: string;
    /** An object that maps strings to the properties to set in the component type update. Each string in the mapping must be unique to this object. */
    propertyUpdates?: Record<string, any>;
    /** The property group updates. */
    propertyGroupUpdates?: Record<string, any>;
}
export interface CompositeComponentUpdateRequest {
    /** The update type of the component update request. */
    updateType?: 'CREATE' | 'UPDATE' | 'DELETE';
    /** The description of the component type. */
    description?: string;
    /** An object that maps strings to the properties to set in the component type update. Each string in the mapping must be unique to this object. */
    propertyUpdates?: Record<string, any>;
    /** The property group updates. */
    propertyGroupUpdates?: Record<string, any>;
}
export interface ParentEntityUpdateRequest {
    /** The type of the update. */
    updateType: 'UPDATE' | 'DELETE';
    /** The ID of the parent entity. */
    parentEntityId?: string;
}
export interface BatchPutPropertyValuesInput {
    /** An object that maps strings to the property value entries to set. Each string in the mapping must be unique to this object. */
    entries: PropertyValueEntry[];
    /** The ID of the workspace that contains the properties to set. */
    workspaceId: string;
}
export interface CancelMetadataTransferJobInput {
    /** The metadata transfer job Id. */
    metadataTransferJobId: string;
}
export interface CreateComponentTypeInput {
    /** The ID of the component type. */
    componentTypeId: string;
    /** The ID of the workspace that contains the component type. */
    workspaceId: string;
    /** A friendly name for the component type. */
    componentTypeName?: string;
    /** This is an object that maps strings to compositeComponentTypes of the componentType. CompositeComponentType is referenced by componentTypeId. */
    compositeComponentTypes?: Record<string, CompositeComponentTypeRequest>;
    /** The description of the component type. */
    description?: string;
    /** Specifies the parent component type to extend. */
    extendsFrom?: string[];
    /** An object that maps strings to the functions in the component type. Each string in the mapping must be unique to this object. */
    functions?: Record<string, FunctionRequest>;
    /** A Boolean value that specifies whether an entity can have more than one component of this type. */
    isSingleton?: boolean;
    /** An object that maps strings to the property definitions in the component type. Each string in the mapping must be unique to this object. */
    propertyDefinitions?: Record<string, PropertyDefinitionRequest>;
    propertyGroups?: Record<string, PropertyGroupRequest>;
    /** Metadata that you can use to manage the component type. */
    tags?: Record<string, string>;
}
export interface CreateEntityInput {
    /** The name of the entity. */
    entityName: string;
    /** The ID of the workspace that contains the entity. */
    workspaceId: string;
    /** An object that maps strings to the components in the entity. Each string in the mapping must be unique to this object. */
    components?: Record<string, ComponentRequest>;
    /** This is an object that maps strings to compositeComponent updates in the request. Each key of the map represents the componentPath of the compositeComponent. */
    compositeComponents?: Record<string, CompositeComponentRequest>;
    /** The description of the entity. */
    description?: string;
    /** The ID of the entity. */
    entityId?: string;
    /** The ID of the entity's parent entity. */
    parentEntityId?: string;
    /** Metadata that you can use to manage the entity. */
    tags?: Record<string, string>;
}
export interface CreateMetadataTransferJobInput {
    /** The metadata transfer job destination. */
    destination: DestinationConfiguration;
    /** The metadata transfer job sources. */
    sources: SourceConfiguration[];
    /** The metadata transfer job description. */
    description?: string;
    /** The metadata transfer job Id. */
    metadataTransferJobId?: string;
}
export interface CreateSceneInput {
    /** The relative path that specifies the location of the content definition file. */
    contentLocation: string;
    /** The ID of the scene. */
    sceneId: string;
    /** The ID of the workspace that contains the scene. */
    workspaceId: string;
    /** A list of capabilities that the scene uses to render itself. */
    capabilities?: string[];
    /** The description for this scene. */
    description?: string;
    /** The request metadata. */
    sceneMetadata?: Record<string, string>;
    /** Metadata that you can use to manage the scene. */
    tags?: Record<string, string>;
}
export interface CreateSyncJobInput {
    /** The SyncJob IAM role. This IAM role is used by the SyncJob to read from the syncSource, and create, update, or delete the corresponding resources. */
    syncRole: string;
    /** The sync source. Currently the only supported syncSoource is SITEWISE . */
    syncSource: string;
    /** The workspace ID. */
    workspaceId: string;
    /** The SyncJob tags. */
    tags?: Record<string, string>;
}
export interface CreateWorkspaceInput {
    /** The ID of the workspace. */
    workspaceId: string;
    /** The description of the workspace. */
    description?: string;
    /** The ARN of the execution role associated with the workspace. */
    role?: string;
    /** The ARN of the S3 bucket where resources associated with the workspace are stored. */
    s3Location?: string;
    /** Metadata that you can use to manage the workspace */
    tags?: Record<string, string>;
}
export interface DeleteComponentTypeInput {
    /** The ID of the component type to delete. */
    componentTypeId: string;
    /** The ID of the workspace that contains the component type. */
    workspaceId: string;
}
export interface DeleteEntityInput {
    /** The ID of the entity to delete. */
    entityId: string;
    /** The ID of the workspace that contains the entity to delete. */
    workspaceId: string;
    /** A Boolean value that specifies whether the operation deletes child entities. */
    isRecursive?: boolean;
}
export interface DeleteSceneInput {
    /** The ID of the scene to delete. */
    sceneId: string;
    /** The ID of the workspace. */
    workspaceId: string;
}
export interface DeleteSyncJobInput {
    /** The sync source. Currently the only supported syncSource is SITEWISE . */
    syncSource: string;
    /** The workspace ID. */
    workspaceId: string;
}
export interface DeleteWorkspaceInput {
    /** The ID of the workspace to delete. */
    workspaceId: string;
}
export interface ExecuteQueryInput {
    /** The query statement. */
    queryStatement: string;
    /** The ID of the workspace. */
    workspaceId: string;
    /** The maximum number of results to return at one time. The default is 50. */
    maxResults?: number;
    /** The string that specifies the next page of results. */
    nextToken?: string;
}
export interface GetComponentTypeInput {
    /** The ID of the component type. */
    componentTypeId: string;
    /** The ID of the workspace that contains the component type. */
    workspaceId: string;
}
export interface GetEntityInput {
    /** The ID of the entity. */
    entityId: string;
    /** The ID of the workspace. */
    workspaceId: string;
}
export interface GetMetadataTransferJobInput {
    /** The metadata transfer job Id. */
    metadataTransferJobId: string;
}
export interface GetPropertyValueInput {
    /** The properties whose values the operation returns. */
    selectedProperties: string[];
    /** The ID of the workspace whose values the operation returns. */
    workspaceId: string;
    /** The name of the component whose property values the operation returns. */
    componentName?: string;
    /** This string specifies the path to the composite component, starting from the top-level component. */
    componentPath?: string;
    /** The ID of the component type whose property values the operation returns. */
    componentTypeId?: string;
    /** The ID of the entity whose property values the operation returns. */
    entityId?: string;
    /** The maximum number of results to return at one time. The default is 25. Valid Range: Minimum value of 1. Maximum value of 250. */
    maxResults?: number;
    /** The string that specifies the next page of results. */
    nextToken?: string;
    /** The property group name. */
    propertyGroupName?: string;
    /** The tabular conditions. */
    tabularConditions?: TabularConditions;
}
export interface GetPropertyValueHistoryInput {
    /** A list of properties whose value histories the request retrieves. */
    selectedProperties: string[];
    /** The ID of the workspace. */
    workspaceId: string;
    /** The name of the component. */
    componentName?: string;
    /** This string specifies the path to the composite component, starting from the top-level component. */
    componentPath?: string;
    /** The ID of the component type. */
    componentTypeId?: string;
    /** The date and time of the latest property value to return. */
    endDateTime?: string;
    /** The ISO8601 DateTime of the latest property value to return. For more information about the ISO8601 DateTime format, see the data type PropertyValue. */
    endTime?: string;
    /** The ID of the entity. */
    entityId?: string;
    /** An object that specifies the interpolation type and the interval over which to interpolate data. */
    interpolation?: InterpolationParameters;
    /** The maximum number of results to return at one time. The default is 25. Valid Range: Minimum value of 1. Maximum value of 250. */
    maxResults?: number;
    /** The string that specifies the next page of results. */
    nextToken?: string;
    /** The time direction to use in the result order. */
    orderByTime?: 'ASCENDING' | 'DESCENDING';
    /** A list of objects that filter the property value history request. */
    propertyFilters?: PropertyFilter[];
    /** The date and time of the earliest property value to return. */
    startDateTime?: string;
    /** The ISO8601 DateTime of the earliest property value to return. For more information about the ISO8601 DateTime format, see the data type PropertyValue. */
    startTime?: string;
}
export interface GetSceneInput {
    /** The ID of the scene. */
    sceneId: string;
    /** The ID of the workspace that contains the scene. */
    workspaceId: string;
}
export interface GetSyncJobInput {
    /** The sync source. Currently the only supported syncSource is SITEWISE . */
    syncSource: string;
    /** The workspace ID. */
    workspaceId?: string;
}
export interface GetWorkspaceInput {
    /** The ID of the workspace. */
    workspaceId: string;
}
export interface ListComponentsInput {
    /** The ID for the entity whose metadata (component/properties) is returned by the operation. */
    entityId: string;
    /** The workspace ID. */
    workspaceId: string;
    /** This string specifies the path to the composite component, starting from the top-level component. */
    componentPath?: string;
    /** The maximum number of results returned at one time. The default is 25. */
    maxResults?: number;
    /** The string that specifies the next page of results. */
    nextToken?: string;
}
export interface ListComponentTypesInput {
    /** The ID of the workspace. */
    workspaceId: string;
    /** A list of objects that filter the request. */
    filters?: {
        extendsFrom?: string;
    } | {
        namespace?: string;
    } | {
        isAbstract?: boolean;
    }[];
    /** The maximum number of results to return at one time. The default is 25. Valid Range: Minimum value of 1. Maximum value of 250. */
    maxResults?: number;
    /** The string that specifies the next page of results. */
    nextToken?: string;
}
export interface ListEntitiesInput {
    /** The ID of the workspace. */
    workspaceId: string;
    /** A list of objects that filter the request. Only one object is accepted as a valid input. */
    filters?: {
        parentEntityId?: string;
    } | {
        componentTypeId?: string;
    } | {
        externalId?: string;
    }[];
    /** The maximum number of results to return at one time. The default is 25. Valid Range: Minimum value of 1. Maximum value of 250. */
    maxResults?: number;
    /** The string that specifies the next page of results. */
    nextToken?: string;
}
export interface ListMetadataTransferJobsInput {
    /** The metadata transfer job's destination type. */
    destinationType: 's3' | 'iotsitewise' | 'iottwinmaker';
    /** The metadata transfer job's source type. */
    sourceType: 's3' | 'iotsitewise' | 'iottwinmaker';
    /** An object that filters metadata transfer jobs. */
    filters?: {
        workspaceId?: string;
    } | {
        state?: 'VALIDATING' | 'PENDING' | 'RUNNING' | 'CANCELLING' | 'ERROR' | 'COMPLETED' | 'CANCELLED';
    }[];
    /** The maximum number of results to return at one time. */
    maxResults?: number;
    /** The string that specifies the next page of results. */
    nextToken?: string;
}
export interface ListPropertiesInput {
    /** The ID for the entity whose metadata (component/properties) is returned by the operation. */
    entityId: string;
    /** The workspace ID. */
    workspaceId: string;
    /** The name of the component whose properties are returned by the operation. */
    componentName?: string;
    /** This string specifies the path to the composite component, starting from the top-level component. */
    componentPath?: string;
    /** The maximum number of results returned at one time. The default is 25. */
    maxResults?: number;
    /** The string that specifies the next page of results. */
    nextToken?: string;
}
export interface ListScenesInput {
    /** The ID of the workspace that contains the scenes. */
    workspaceId: string;
    /** Specifies the maximum number of results to display. */
    maxResults?: number;
    /** The string that specifies the next page of results. */
    nextToken?: string;
}
export interface ListSyncJobsInput {
    /** The ID of the workspace that contains the sync job. */
    workspaceId: string;
    /** The maximum number of results to return at one time. The default is 50. Valid Range: Minimum value of 0. Maximum value of 200. */
    maxResults?: number;
    /** The string that specifies the next page of results. */
    nextToken?: string;
}
export interface ListSyncResourcesInput {
    /** The sync source. Currently the only supported syncSource is SITEWISE . */
    syncSource: string;
    /** The ID of the workspace that contains the sync job. */
    workspaceId: string;
    /** A list of objects that filter the request. The following filter combinations are supported: Filter with state Filter with ResourceType and ResourceId Filter with ResourceType and ExternalId */
    filters?: {
        state?: 'INITIALIZING' | 'PROCESSING' | 'DELETED' | 'IN_SYNC' | 'ERROR';
    } | {
        resourceType?: 'ENTITY' | 'COMPONENT_TYPE';
    } | {
        resourceId?: string;
    } | {
        externalId?: string;
    }[];
    /** The maximum number of results to return at one time. The default is 50. Valid Range: Minimum value of 0. Maximum value of 200. */
    maxResults?: number;
    /** The string that specifies the next page of results. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The ARN of the resource. */
    resourceARN: string;
    /** The maximum number of results to return at one time. The default is 25. Valid Range: Minimum value of 1. Maximum value of 250. */
    maxResults?: number;
    /** The string that specifies the next page of results. */
    nextToken?: string;
}
export interface ListWorkspacesInput {
    /** The maximum number of results to return at one time. The default is 25. Valid Range: Minimum value of 1. Maximum value of 250. */
    maxResults?: number;
    /** The string that specifies the next page of results. */
    nextToken?: string;
}
export interface TagResourceInput {
    /** The ARN of the resource. */
    resourceARN: string;
    /** Metadata to add to this resource. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The ARN of the resource. */
    resourceARN: string;
    /** A list of tag key names to remove from the resource. You don't specify the value. Both the key and its associated value are removed. */
    tagKeys: string[];
}
export interface UpdateComponentTypeInput {
    /** The ID of the component type. */
    componentTypeId: string;
    /** The ID of the workspace. */
    workspaceId: string;
    /** The component type name. */
    componentTypeName?: string;
    /** This is an object that maps strings to compositeComponentTypes of the componentType. CompositeComponentType is referenced by componentTypeId. */
    compositeComponentTypes?: Record<string, CompositeComponentTypeRequest>;
    /** The description of the component type. */
    description?: string;
    /** Specifies the component type that this component type extends. */
    extendsFrom?: string[];
    /** An object that maps strings to the functions in the component type. Each string in the mapping must be unique to this object. */
    functions?: Record<string, FunctionRequest>;
    /** A Boolean value that specifies whether an entity can have more than one component of this type. */
    isSingleton?: boolean;
    /** An object that maps strings to the property definitions in the component type. Each string in the mapping must be unique to this object. */
    propertyDefinitions?: Record<string, PropertyDefinitionRequest>;
    /** The property groups. */
    propertyGroups?: Record<string, PropertyGroupRequest>;
}
export interface UpdateEntityInput {
    /** The ID of the entity. */
    entityId: string;
    /** The ID of the workspace that contains the entity. */
    workspaceId: string;
    /** An object that maps strings to the component updates in the request. Each string in the mapping must be unique to this object. */
    componentUpdates?: Record<string, ComponentUpdateRequest>;
    /** This is an object that maps strings to compositeComponent updates in the request. Each key of the map represents the componentPath of the compositeComponent. */
    compositeComponentUpdates?: Record<string, CompositeComponentUpdateRequest>;
    /** The description of the entity. */
    description?: string;
    /** The name of the entity. */
    entityName?: string;
    /** An object that describes the update request for a parent entity. */
    parentEntityUpdate?: ParentEntityUpdateRequest;
}
export interface UpdatePricingPlanInput {
    /** The pricing mode. */
    pricingMode: 'BASIC' | 'STANDARD' | 'TIERED_BUNDLE';
    /** The bundle names. */
    bundleNames?: string[];
}
export interface UpdateSceneInput {
    /** The ID of the scene. */
    sceneId: string;
    /** The ID of the workspace that contains the scene. */
    workspaceId: string;
    /** A list of capabilities that the scene uses to render. */
    capabilities?: string[];
    /** The relative path that specifies the location of the content definition file. */
    contentLocation?: string;
    /** The description of this scene. */
    description?: string;
    /** The scene metadata. */
    sceneMetadata?: Record<string, string>;
}
export interface UpdateWorkspaceInput {
    /** The ID of the workspace. */
    workspaceId: string;
    /** The description of the workspace. */
    description?: string;
    /** The ARN of the execution role associated with the workspace. */
    role?: string;
    /** The ARN of the S3 bucket where resources associated with the workspace are stored. */
    s3Location?: string;
}
/** IoTTwinMaker service binding for Step Functions SDK integrations. */
export declare class IoTTwinMaker {
    constructor();
    batchPutPropertyValues<T>(params: BatchPutPropertyValuesInput): Promise<T>;
    cancelMetadataTransferJob<T>(params: CancelMetadataTransferJobInput): Promise<T>;
    createComponentType<T>(params: CreateComponentTypeInput): Promise<T>;
    createEntity<T>(params: CreateEntityInput): Promise<T>;
    createMetadataTransferJob<T>(params: CreateMetadataTransferJobInput): Promise<T>;
    createScene<T>(params: CreateSceneInput): Promise<T>;
    createSyncJob<T>(params: CreateSyncJobInput): Promise<T>;
    createWorkspace<T>(params: CreateWorkspaceInput): Promise<T>;
    deleteComponentType<T>(params: DeleteComponentTypeInput): Promise<T>;
    deleteEntity<T>(params: DeleteEntityInput): Promise<T>;
    deleteScene<T>(params: DeleteSceneInput): Promise<T>;
    deleteSyncJob<T>(params: DeleteSyncJobInput): Promise<T>;
    deleteWorkspace<T>(params: DeleteWorkspaceInput): Promise<T>;
    executeQuery<T>(params: ExecuteQueryInput): Promise<T>;
    getComponentType<T>(params: GetComponentTypeInput): Promise<T>;
    getEntity<T>(params: GetEntityInput): Promise<T>;
    getMetadataTransferJob<T>(params: GetMetadataTransferJobInput): Promise<T>;
    getPricingPlan<T>(params: Record<string, any>): Promise<T>;
    getPropertyValue<T>(params: GetPropertyValueInput): Promise<T>;
    getPropertyValueHistory<T>(params: GetPropertyValueHistoryInput): Promise<T>;
    getScene<T>(params: GetSceneInput): Promise<T>;
    getSyncJob<T>(params: GetSyncJobInput): Promise<T>;
    getWorkspace<T>(params: GetWorkspaceInput): Promise<T>;
    listComponents<T>(params: ListComponentsInput): Promise<T>;
    listComponentTypes<T>(params: ListComponentTypesInput): Promise<T>;
    listEntities<T>(params: ListEntitiesInput): Promise<T>;
    listMetadataTransferJobs<T>(params: ListMetadataTransferJobsInput): Promise<T>;
    listProperties<T>(params: ListPropertiesInput): Promise<T>;
    listScenes<T>(params: ListScenesInput): Promise<T>;
    listSyncJobs<T>(params: ListSyncJobsInput): Promise<T>;
    listSyncResources<T>(params: ListSyncResourcesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listWorkspaces<T>(params: ListWorkspacesInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateComponentType<T>(params: UpdateComponentTypeInput): Promise<T>;
    updateEntity<T>(params: UpdateEntityInput): Promise<T>;
    updatePricingPlan<T>(params: UpdatePricingPlanInput): Promise<T>;
    updateScene<T>(params: UpdateSceneInput): Promise<T>;
    updateWorkspace<T>(params: UpdateWorkspaceInput): Promise<T>;
}
//# sourceMappingURL=IoTTwinMaker.d.ts.map