export interface Tag {
    /** The tag's key. */
    key: string;
    /** The tag's value. */
    value: string;
}
export interface SimpleRule {
    /** The value on the left side of the comparison operator. You can specify an AWS IoT Events input attribute as an input property. */
    inputProperty: string;
    /** The comparison operator. */
    comparisonOperator: 'GREATER' | 'GREATER_OR_EQUAL' | 'LESS' | 'LESS_OR_EQUAL' | 'EQUAL' | 'NOT_EQUAL';
    /** The value on the right side of the comparison operator. You can enter a number or specify an AWS IoT Events input attribute. */
    threshold: string;
}
export interface AlarmRule {
    /** A rule that compares an input property value to a threshold value with a comparison operator. */
    simpleRule?: SimpleRule;
}
export interface AlarmNotification {
    /** Contains the notification settings of an alarm model. The settings apply to all alarms that were created based on this alarm model. */
    notificationActions?: any[];
}
export interface AlarmEventActions {
    /** Specifies one or more supported actions to receive notifications when the alarm state changes. */
    alarmActions?: any[];
}
export interface InitializationConfiguration {
    /** The value must be TRUE or FALSE. If FALSE, all alarm instances created based on the alarm model are activated. The default value is TRUE. */
    disabledOnInitialization: boolean;
}
export interface AcknowledgeFlow {
    /** The value must be TRUE or FALSE. If TRUE, you receive a notification when the alarm state changes. You must choose to acknowledge the notification before the alarm state can return to NORMAL. If FALSE */
    enabled: boolean;
}
export interface AlarmCapabilities {
    /** Specifies the default alarm state. The configuration applies to all alarms that were created based on this alarm model. */
    initializationConfiguration?: InitializationConfiguration;
    /** Specifies whether to get notified for alarm state changes. */
    acknowledgeFlow?: AcknowledgeFlow;
}
export interface DetectorModelDefinition {
    /** Information about the states of the detector. */
    states: any[];
    /** The state that is entered at the creation of each detector (instance). */
    initialStateName: string;
}
export interface InputDefinition {
    /** The attributes from the JSON payload that are made available by the input. Inputs are derived from messages sent to the AWS IoT Events system using BatchPutMessage. Each such message contains a JSON p */
    attributes: any[];
}
export interface IotEventsInputIdentifier {
    /** The name of the input routed to AWS IoT Events. */
    inputName: string;
}
export interface IotSiteWiseInputIdentifier {
    /** The identifier of the AWS IoT SiteWise asset model property. */
    iotSiteWiseAssetModelPropertyIdentifier?: any;
}
export interface InputIdentifier {
    /** The identifier of the input routed to AWS IoT Events. */
    iotEventsInputIdentifier?: IotEventsInputIdentifier;
    /** The identifer of the input routed from AWS IoT SiteWise. */
    iotSiteWiseInputIdentifier?: IotSiteWiseInputIdentifier;
}
export interface LoggingOptions {
    /** The ARN of the role that grants permission to AWS IoT Events to perform logging. */
    roleArn: string;
    /** The logging level. */
    level: 'ERROR' | 'INFO' | 'DEBUG';
    /** If TRUE, logging is enabled for AWS IoT Events. */
    enabled: boolean;
    /** Information that identifies those detector models and their detectors (instances) for which the logging level is given. */
    detectorDebugOptions?: any[];
}
export interface CreateAlarmModelInput {
    /** A unique name that helps you identify the alarm model. You can't change this name after you create the alarm model. */
    alarmModelName: string;
    /** Defines when your alarm is invoked. */
    alarmRule: AlarmRule;
    /** The ARN of the IAM role that allows the alarm to perform actions and access AWS resources. For more information, see Amazon Resource Names (ARNs) in the AWS General Reference. */
    roleArn: string;
    /** Contains the configuration information of alarm state changes. */
    alarmCapabilities?: AlarmCapabilities;
    /** Contains information about one or more alarm actions. */
    alarmEventActions?: AlarmEventActions;
    /** A description that tells you what the alarm model detects. */
    alarmModelDescription?: string;
    /** Contains information about one or more notification actions. */
    alarmNotification?: AlarmNotification;
    /** An input attribute used as a key to create an alarm. AWS IoT Events routes inputs associated with this key to the alarm. */
    key?: string;
    /** A non-negative integer that reflects the severity level of the alarm. */
    severity?: number;
    /** A list of key-value pairs that contain metadata for the alarm model. The tags help you manage the alarm model. For more information, see Tagging your AWS IoT Events resources in the AWS IoT Events Dev */
    tags?: Tag[];
}
export interface CreateDetectorModelInput {
    /** Information that defines how the detectors operate. */
    detectorModelDefinition: DetectorModelDefinition;
    /** The name of the detector model. */
    detectorModelName: string;
    /** The ARN of the role that grants permission to AWS IoT Events to perform its operations. */
    roleArn: string;
    /** A brief description of the detector model. */
    detectorModelDescription?: string;
    /** Information about the order in which events are evaluated and how actions are executed. */
    evaluationMethod?: 'BATCH' | 'SERIAL';
    /** The input attribute key used to identify a device or system to create a detector (an instance of the detector model) and then to route each input received to the appropriate detector (instance). This  */
    key?: string;
    /** Metadata that can be used to manage the detector model. */
    tags?: Tag[];
}
export interface CreateInputInput {
    /** The definition of the input. */
    inputDefinition: InputDefinition;
    /** The name you want to give to the input. */
    inputName: string;
    /** A brief description of the input. */
    inputDescription?: string;
    /** Metadata that can be used to manage the input. */
    tags?: Tag[];
}
export interface DeleteAlarmModelInput {
    /** The name of the alarm model. */
    alarmModelName: string;
}
export interface DeleteDetectorModelInput {
    /** The name of the detector model to be deleted. */
    detectorModelName: string;
}
export interface DeleteInputInput {
    /** The name of the input to delete. */
    inputName: string;
}
export interface DescribeAlarmModelInput {
    /** The name of the alarm model. */
    alarmModelName: string;
    /** The version of the alarm model. */
    alarmModelVersion?: string;
}
export interface DescribeDetectorModelInput {
    /** The name of the detector model. */
    detectorModelName: string;
    /** The version of the detector model. */
    detectorModelVersion?: string;
}
export interface DescribeDetectorModelAnalysisInput {
    /** The ID of the analysis result that you want to retrieve. */
    analysisId: string;
}
export interface DescribeInputInput {
    /** The name of the input. */
    inputName: string;
}
export interface GetDetectorModelAnalysisResultsInput {
    /** The ID of the analysis result that you want to retrieve. */
    analysisId: string;
    /** The maximum number of results to be returned per request. */
    maxResults?: number;
    /** The token that you can use to return the next set of results. */
    nextToken?: string;
}
export interface ListAlarmModelsInput {
    /** The maximum number of results to be returned per request. */
    maxResults?: number;
    /** The token that you can use to return the next set of results. */
    nextToken?: string;
}
export interface ListAlarmModelVersionsInput {
    /** The name of the alarm model. */
    alarmModelName: string;
    /** The maximum number of results to be returned per request. */
    maxResults?: number;
    /** The token that you can use to return the next set of results. */
    nextToken?: string;
}
export interface ListDetectorModelsInput {
    /** The maximum number of results to be returned per request. */
    maxResults?: number;
    /** The token that you can use to return the next set of results. */
    nextToken?: string;
}
export interface ListDetectorModelVersionsInput {
    /** The name of the detector model whose versions are returned. */
    detectorModelName: string;
    /** The maximum number of results to be returned per request. */
    maxResults?: number;
    /** The token that you can use to return the next set of results. */
    nextToken?: string;
}
export interface ListInputRoutingsInput {
    /** The identifer of the routed input. */
    inputIdentifier: InputIdentifier;
    /** The maximum number of results to be returned per request. */
    maxResults?: number;
    /** The token that you can use to return the next set of results. */
    nextToken?: string;
}
export interface ListInputsInput {
    /** The maximum number of results to be returned per request. */
    maxResults?: number;
    /** The token that you can use to return the next set of results. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The ARN of the resource. */
    resourceArn: string;
}
export interface PutLoggingOptionsInput {
    /** The new values of the AWS IoT Events logging options. */
    loggingOptions: LoggingOptions;
}
export interface StartDetectorModelAnalysisInput {
    detectorModelDefinition: DetectorModelDefinition;
}
export interface TagResourceInput {
    /** The ARN of the resource. */
    resourceArn: string;
    /** The new or modified tags for the resource. */
    tags: Tag[];
}
export interface UntagResourceInput {
    /** The ARN of the resource. */
    resourceArn: string;
    /** A list of the keys of the tags to be removed from the resource. */
    tagKeys: string[];
}
export interface UpdateAlarmModelInput {
    /** The name of the alarm model. */
    alarmModelName: string;
    /** Defines when your alarm is invoked. */
    alarmRule: AlarmRule;
    /** The ARN of the IAM role that allows the alarm to perform actions and access AWS resources. For more information, see Amazon Resource Names (ARNs) in the AWS General Reference. */
    roleArn: string;
    /** Contains the configuration information of alarm state changes. */
    alarmCapabilities?: AlarmCapabilities;
    /** Contains information about one or more alarm actions. */
    alarmEventActions?: AlarmEventActions;
    /** The description of the alarm model. */
    alarmModelDescription?: string;
    /** Contains information about one or more notification actions. */
    alarmNotification?: AlarmNotification;
    /** A non-negative integer that reflects the severity level of the alarm. */
    severity?: number;
}
export interface UpdateDetectorModelInput {
    /** Information that defines how a detector operates. */
    detectorModelDefinition: DetectorModelDefinition;
    /** The name of the detector model that is updated. */
    detectorModelName: string;
    /** The ARN of the role that grants permission to AWS IoT Events to perform its operations. */
    roleArn: string;
    /** A brief description of the detector model. */
    detectorModelDescription?: string;
    /** Information about the order in which events are evaluated and how actions are executed. */
    evaluationMethod?: 'BATCH' | 'SERIAL';
}
export interface UpdateInputInput {
    /** The definition of the input. */
    inputDefinition: InputDefinition;
    /** The name of the input you want to update. */
    inputName: string;
    /** A brief description of the input. */
    inputDescription?: string;
}
/** IoT Events service binding for Step Functions SDK integrations. */
export declare class IoTEvents {
    constructor();
    createAlarmModel<T>(params: CreateAlarmModelInput): Promise<T>;
    createDetectorModel<T>(params: CreateDetectorModelInput): Promise<T>;
    createInput<T>(params: CreateInputInput): Promise<T>;
    deleteAlarmModel<T>(params: DeleteAlarmModelInput): Promise<T>;
    deleteDetectorModel<T>(params: DeleteDetectorModelInput): Promise<T>;
    deleteInput<T>(params: DeleteInputInput): Promise<T>;
    describeAlarmModel<T>(params: DescribeAlarmModelInput): Promise<T>;
    describeDetectorModel<T>(params: DescribeDetectorModelInput): Promise<T>;
    describeDetectorModelAnalysis<T>(params: DescribeDetectorModelAnalysisInput): Promise<T>;
    describeInput<T>(params: DescribeInputInput): Promise<T>;
    describeLoggingOptions<T>(params: Record<string, any>): Promise<T>;
    getDetectorModelAnalysisResults<T>(params: GetDetectorModelAnalysisResultsInput): Promise<T>;
    listAlarmModels<T>(params: ListAlarmModelsInput): Promise<T>;
    listAlarmModelVersions<T>(params: ListAlarmModelVersionsInput): Promise<T>;
    listDetectorModels<T>(params: ListDetectorModelsInput): Promise<T>;
    listDetectorModelVersions<T>(params: ListDetectorModelVersionsInput): Promise<T>;
    listInputRoutings<T>(params: ListInputRoutingsInput): Promise<T>;
    listInputs<T>(params: ListInputsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    putLoggingOptions<T>(params: PutLoggingOptionsInput): Promise<T>;
    startDetectorModelAnalysis<T>(params: StartDetectorModelAnalysisInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateAlarmModel<T>(params: UpdateAlarmModelInput): Promise<T>;
    updateDetectorModel<T>(params: UpdateDetectorModelInput): Promise<T>;
    updateInput<T>(params: UpdateInputInput): Promise<T>;
}
//# sourceMappingURL=IoTEvents.d.ts.map