export interface DefinitionDocument {
    /** The language used to define the entity. GRAPHQL is the only valid value. */
    language: 'GRAPHQL';
    /** The GraphQL text that defines the entity. */
    text: string;
}
export interface Tag {
    /** The required name of the tag. The string value can be from 1 to 128 Unicode characters in length. */
    key: string;
    /** The optional value of the tag. The string value can be from 1 to 256 Unicode characters in length. */
    value: string;
}
export interface MetricsConfiguration {
    /** A Boolean that specifies whether cloud metrics are collected. */
    cloudMetricEnabled?: boolean;
    /** The ARN of the role that is used to collect cloud metrics. */
    metricRuleRoleArn?: string;
}
export interface EntityFilter {
    /** The name of the entity search filter field. REFERENCED_ENTITY_ID filters on entities that are used by the entity in the result set. For example, you can filter on the ID of a property that is used in  */
    name?: 'NAME' | 'NAMESPACE' | 'SEMANTIC_TYPE_PATH' | 'REFERENCED_ENTITY_ID';
    /** An array of string values for the search filter field. Multiple values function as AND criteria in the search. */
    value?: any[];
}
export interface FlowTemplateFilter {
    /** The name of the search filter field. */
    name: 'DEVICE_MODEL_ID';
    /** An array of string values for the search filter field. Multiple values function as AND criteria in the search. */
    value: any[];
}
export interface SystemInstanceFilter {
    /** The name of the search filter field. */
    name?: 'SYSTEM_TEMPLATE_ID' | 'STATUS' | 'GREENGRASS_GROUP_NAME';
    /** An array of string values for the search filter field. Multiple values function as AND criteria in the search. */
    value?: any[];
}
export interface SystemTemplateFilter {
    /** The name of the system search filter field. */
    name: 'FLOW_TEMPLATE_ID';
    /** An array of string values for the search filter field. Multiple values function as AND criteria in the search. */
    value: any[];
}
export interface AssociateEntityToThingInput {
    /** The ID of the device to be associated with the thing. The ID should be in the following format. urn:tdm:REGION/ACCOUNT ID/default:device:DEVICENAME */
    entityId: string;
    /** The name of the thing to which the entity is to be associated. */
    thingName: string;
    /** The version of the user's namespace. Defaults to the latest version of the user's namespace. */
    namespaceVersion?: number;
}
export interface CreateFlowTemplateInput {
    /** The workflow DefinitionDocument. */
    definition: DefinitionDocument;
    /** The namespace version in which the workflow is to be created. If no value is specified, the latest version is used by default. */
    compatibleNamespaceVersion?: number;
}
export interface CreateSystemInstanceInput {
    definition: DefinitionDocument;
    /** The target type of the deployment. Valid values are GREENGRASS and CLOUD. */
    target: 'GREENGRASS' | 'CLOUD';
    /** The ARN of the IAM role that AWS IoT Things Graph will assume when it executes the flow. This role must have read and write access to AWS Lambda and AWS IoT and any other AWS services that the flow us */
    flowActionsRoleArn?: string;
    /** The name of the Greengrass group where the system instance will be deployed. This value is required if the value of the target parameter is GREENGRASS. */
    greengrassGroupName?: string;
    metricsConfiguration?: MetricsConfiguration;
    /** The name of the Amazon Simple Storage Service bucket that will be used to store and deploy the system instance's resource file. This value is required if the value of the target parameter is GREENGRAS */
    s3BucketName?: string;
    /** Metadata, consisting of key-value pairs, that can be used to categorize your system instances. */
    tags?: Tag[];
}
export interface CreateSystemTemplateInput {
    /** The DefinitionDocument used to create the system. */
    definition: DefinitionDocument;
    /** The namespace version in which the system is to be created. If no value is specified, the latest version is used by default. */
    compatibleNamespaceVersion?: number;
}
export interface DeleteFlowTemplateInput {
    /** The ID of the workflow to be deleted. The ID should be in the following format. urn:tdm:REGION/ACCOUNT ID/default:workflow:WORKFLOWNAME */
    id: string;
}
export interface DeleteSystemInstanceInput {
    /** The ID of the system instance to be deleted. */
    id?: string;
}
export interface DeleteSystemTemplateInput {
    /** The ID of the system to be deleted. The ID should be in the following format. urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME */
    id: string;
}
export interface DeploySystemInstanceInput {
    /** The ID of the system instance. This value is returned by the CreateSystemInstance action. The ID should be in the following format. urn:tdm:REGION/ACCOUNT ID/default:deployment:DEPLOYMENTNAME */
    id?: string;
}
export interface DeprecateFlowTemplateInput {
    /** The ID of the workflow to be deleted. The ID should be in the following format. urn:tdm:REGION/ACCOUNT ID/default:workflow:WORKFLOWNAME */
    id: string;
}
export interface DeprecateSystemTemplateInput {
    /** The ID of the system to delete. The ID should be in the following format. urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME */
    id: string;
}
export interface DescribeNamespaceInput {
    /** The name of the user's namespace. Set this to aws to get the public namespace. */
    namespaceName?: string;
}
export interface DissociateEntityFromThingInput {
    /** The entity type from which to disassociate the thing. */
    entityType: 'DEVICE' | 'SERVICE' | 'DEVICE_MODEL' | 'CAPABILITY' | 'STATE' | 'ACTION' | 'EVENT' | 'PROPERTY' | 'MAPPING' | 'ENUM';
    /** The name of the thing to disassociate. */
    thingName: string;
}
export interface GetEntitiesInput {
    /** An array of entity IDs. The IDs should be in the following format. urn:tdm:REGION/ACCOUNT ID/default:device:DEVICENAME */
    ids: string[];
    /** The version of the user's namespace. Defaults to the latest version of the user's namespace. */
    namespaceVersion?: number;
}
export interface GetFlowTemplateInput {
    /** The ID of the workflow. The ID should be in the following format. urn:tdm:REGION/ACCOUNT ID/default:workflow:WORKFLOWNAME */
    id: string;
    /** The number of the workflow revision to retrieve. */
    revisionNumber?: number;
}
export interface GetFlowTemplateRevisionsInput {
    /** The ID of the workflow. The ID should be in the following format. urn:tdm:REGION/ACCOUNT ID/default:workflow:WORKFLOWNAME */
    id: string;
    /** The maximum number of results to return in the response. */
    maxResults?: number;
    /** The string that specifies the next page of results. Use this when you're paginating results. */
    nextToken?: string;
}
export interface GetSystemInstanceInput {
    /** The ID of the system deployment instance. This value is returned by CreateSystemInstance. The ID should be in the following format. urn:tdm:REGION/ACCOUNT ID/default:deployment:DEPLOYMENTNAME */
    id: string;
}
export interface GetSystemTemplateInput {
    /** The ID of the system to get. This ID must be in the user's namespace. The ID should be in the following format. urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME */
    id: string;
    /** The number that specifies the revision of the system to get. */
    revisionNumber?: number;
}
export interface GetSystemTemplateRevisionsInput {
    /** The ID of the system template. The ID should be in the following format. urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME */
    id: string;
    /** The maximum number of results to return in the response. */
    maxResults?: number;
    /** The string that specifies the next page of results. Use this when you're paginating results. */
    nextToken?: string;
}
export interface GetUploadStatusInput {
    /** The ID of the upload. This value is returned by the UploadEntityDefinitions action. */
    uploadId: string;
}
export interface ListFlowExecutionMessagesInput {
    /** The ID of the flow execution. */
    flowExecutionId: string;
    /** The maximum number of results to return in the response. */
    maxResults?: number;
    /** The string that specifies the next page of results. Use this when you're paginating results. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource whose tags are to be returned. */
    resourceArn: string;
    /** The maximum number of tags to return. */
    maxResults?: number;
    /** The token that specifies the next page of results to return. */
    nextToken?: string;
}
export interface SearchEntitiesInput {
    /** The entity types for which to search. */
    entityTypes: 'DEVICE' | 'SERVICE' | 'DEVICE_MODEL' | 'CAPABILITY' | 'STATE' | 'ACTION' | 'EVENT' | 'PROPERTY' | 'MAPPING' | 'ENUM'[];
    /** Optional filter to apply to the search. Valid filters are NAME NAMESPACE, SEMANTIC_TYPE_PATH and REFERENCED_ENTITY_ID. REFERENCED_ENTITY_ID filters on entities that are used by the entity in the resul */
    filters?: EntityFilter[];
    /** The maximum number of results to return in the response. */
    maxResults?: number;
    /** The version of the user's namespace. Defaults to the latest version of the user's namespace. */
    namespaceVersion?: number;
    /** The string that specifies the next page of results. Use this when you're paginating results. */
    nextToken?: string;
}
export interface SearchFlowExecutionsInput {
    /** The ID of the system instance that contains the flow. */
    systemInstanceId: string;
    /** The date and time of the latest flow execution to return. */
    endTime?: string;
    /** The ID of a flow execution. */
    flowExecutionId?: string;
    /** The maximum number of results to return in the response. */
    maxResults?: number;
    /** The string that specifies the next page of results. Use this when you're paginating results. */
    nextToken?: string;
    /** The date and time of the earliest flow execution to return. */
    startTime?: string;
}
export interface SearchFlowTemplatesInput {
    /** An array of objects that limit the result set. The only valid filter is DEVICE_MODEL_ID. */
    filters?: FlowTemplateFilter[];
    /** The maximum number of results to return in the response. */
    maxResults?: number;
    /** The string that specifies the next page of results. Use this when you're paginating results. */
    nextToken?: string;
}
export interface SearchSystemInstancesInput {
    /** Optional filter to apply to the search. Valid filters are SYSTEM_TEMPLATE_ID, STATUS, and GREENGRASS_GROUP_NAME. Multiple filters function as OR criteria in the query. Multiple values passed inside th */
    filters?: SystemInstanceFilter[];
    /** The maximum number of results to return in the response. */
    maxResults?: number;
    /** The string that specifies the next page of results. Use this when you're paginating results. */
    nextToken?: string;
}
export interface SearchSystemTemplatesInput {
    /** An array of filters that limit the result set. The only valid filter is FLOW_TEMPLATE_ID. */
    filters?: SystemTemplateFilter[];
    /** The maximum number of results to return in the response. */
    maxResults?: number;
    /** The string that specifies the next page of results. Use this when you're paginating results. */
    nextToken?: string;
}
export interface SearchThingsInput {
    /** The ID of the entity to which the things are associated. The IDs should be in the following format. urn:tdm:REGION/ACCOUNT ID/default:device:DEVICENAME */
    entityId: string;
    /** The maximum number of results to return in the response. */
    maxResults?: number;
    /** The version of the user's namespace. Defaults to the latest version of the user's namespace. */
    namespaceVersion?: number;
    /** The string that specifies the next page of results. Use this when you're paginating results. */
    nextToken?: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource whose tags are returned. */
    resourceArn: string;
    /** A list of tags to add to the resource.> */
    tags: Tag[];
}
export interface UndeploySystemInstanceInput {
    /** The ID of the system instance to remove from its target. */
    id?: string;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource whose tags are to be removed. */
    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. This parameter to the API requires a JSON text string argument. For */
    tagKeys: string[];
}
export interface UpdateFlowTemplateInput {
    /** The DefinitionDocument that contains the updated workflow definition. */
    definition: DefinitionDocument;
    /** The ID of the workflow to be updated. The ID should be in the following format. urn:tdm:REGION/ACCOUNT ID/default:workflow:WORKFLOWNAME */
    id: string;
    /** The version of the user's namespace. If no value is specified, the latest version is used by default. Use the GetFlowTemplateRevisions if you want to find earlier revisions of the flow to update. */
    compatibleNamespaceVersion?: number;
}
export interface UpdateSystemTemplateInput {
    /** The DefinitionDocument that contains the updated system definition. */
    definition: DefinitionDocument;
    /** The ID of the system to be updated. The ID should be in the following format. urn:tdm:REGION/ACCOUNT ID/default:system:SYSTEMNAME */
    id: string;
    /** The version of the user's namespace. Defaults to the latest version of the user's namespace. If no value is specified, the latest version is used by default. */
    compatibleNamespaceVersion?: number;
}
export interface UploadEntityDefinitionsInput {
    /** A Boolean that specifies whether to deprecate all entities in the latest version before uploading the new DefinitionDocument. If set to true, the upload will create a new namespace version. */
    deprecateExistingEntities?: boolean;
    /** The DefinitionDocument that defines the updated entities. */
    document?: DefinitionDocument;
    /** A Boolean that specifies whether to synchronize with the latest version of the public namespace. If set to true, the upload will create a new namespace version. */
    syncWithPublicNamespace?: boolean;
}
/** IoTThingsGraph service binding for Step Functions SDK integrations. */
export declare class IoTThingsGraph {
    constructor();
    associateEntityToThing<T>(params: AssociateEntityToThingInput): Promise<T>;
    createFlowTemplate<T>(params: CreateFlowTemplateInput): Promise<T>;
    createSystemInstance<T>(params: CreateSystemInstanceInput): Promise<T>;
    createSystemTemplate<T>(params: CreateSystemTemplateInput): Promise<T>;
    deleteFlowTemplate<T>(params: DeleteFlowTemplateInput): Promise<T>;
    deleteNamespace<T>(params: Record<string, any>): Promise<T>;
    deleteSystemInstance<T>(params: DeleteSystemInstanceInput): Promise<T>;
    deleteSystemTemplate<T>(params: DeleteSystemTemplateInput): Promise<T>;
    deploySystemInstance<T>(params: DeploySystemInstanceInput): Promise<T>;
    deprecateFlowTemplate<T>(params: DeprecateFlowTemplateInput): Promise<T>;
    deprecateSystemTemplate<T>(params: DeprecateSystemTemplateInput): Promise<T>;
    describeNamespace<T>(params: DescribeNamespaceInput): Promise<T>;
    dissociateEntityFromThing<T>(params: DissociateEntityFromThingInput): Promise<T>;
    getEntities<T>(params: GetEntitiesInput): Promise<T>;
    getFlowTemplate<T>(params: GetFlowTemplateInput): Promise<T>;
    getFlowTemplateRevisions<T>(params: GetFlowTemplateRevisionsInput): Promise<T>;
    getNamespaceDeletionStatus<T>(params: Record<string, any>): Promise<T>;
    getSystemInstance<T>(params: GetSystemInstanceInput): Promise<T>;
    getSystemTemplate<T>(params: GetSystemTemplateInput): Promise<T>;
    getSystemTemplateRevisions<T>(params: GetSystemTemplateRevisionsInput): Promise<T>;
    getUploadStatus<T>(params: GetUploadStatusInput): Promise<T>;
    listFlowExecutionMessages<T>(params: ListFlowExecutionMessagesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    searchEntities<T>(params: SearchEntitiesInput): Promise<T>;
    searchFlowExecutions<T>(params: SearchFlowExecutionsInput): Promise<T>;
    searchFlowTemplates<T>(params: SearchFlowTemplatesInput): Promise<T>;
    searchSystemInstances<T>(params: SearchSystemInstancesInput): Promise<T>;
    searchSystemTemplates<T>(params: SearchSystemTemplatesInput): Promise<T>;
    searchThings<T>(params: SearchThingsInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    undeploySystemInstance<T>(params: UndeploySystemInstanceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateFlowTemplate<T>(params: UpdateFlowTemplateInput): Promise<T>;
    updateSystemTemplate<T>(params: UpdateSystemTemplateInput): Promise<T>;
    uploadEntityDefinitions<T>(params: UploadEntityDefinitionsInput): Promise<T>;
}
//# sourceMappingURL=IoTThingsGraph.d.ts.map