export interface ExclusionWindow {
    /** The SLO time window exclusion . */
    Window: any;
    /** The start of the SLO time window exclusion. Defaults to current time if not specified. */
    StartTime?: string;
    /** The recurrence rule for the SLO time window exclusion. Supports both cron and rate expressions. */
    RecurrenceRule?: any;
    /** A description explaining why this time period should be excluded from SLO calculations. */
    Reason?: string;
}
export interface ServiceLevelIndicatorMetricConfig {
    /** If this SLO is related to a metric collected by Application Signals, you must use this field to specify which service the SLO metric is related to. To do so, you must specify at least the Type, Name,  */
    KeyAttributes?: Record<string, any>;
    /** If the SLO is to monitor a specific operation of the service, use this field to specify the name of that operation. */
    OperationName?: string;
    /** If the SLO is to monitor either the LATENCY or AVAILABILITY metric that Application Signals collects, use this field to specify which of those metrics is used. */
    MetricType?: 'LATENCY' | 'AVAILABILITY';
    /** The name of the CloudWatch metric to use for the SLO, when using a custom metric rather than Application Signals standard metrics. */
    MetricName?: string;
    /** The statistic to use for comparison to the threshold. It can be any CloudWatch statistic or extended statistic. For more information about statistics, see CloudWatch statistics definitions. */
    Statistic?: string;
    /** The number of seconds to use as the period for SLO evaluation. Your application's performance is compared to the SLI during each period. For each period, the application is determined to have either a */
    PeriodSeconds?: number;
    /** If this SLO monitors a CloudWatch metric or the result of a CloudWatch metric math expression, use this structure to specify that metric or expression. */
    MetricDataQueries?: any[];
    /** Identifies the dependency using the DependencyKeyAttributes and DependencyOperationName. */
    DependencyConfig?: any;
}
export interface ServiceLevelIndicatorConfig {
    /** Use this structure to specify the metric to be used for the SLO. */
    SliMetricConfig: ServiceLevelIndicatorMetricConfig;
    /** This parameter is used only when a request-based SLO tracks the Latency metric. Specify the threshold value that the observed Latency metric values are to be compared to. */
    MetricThreshold: number;
    /** The arithmetic operation to use when comparing the specified metric to the threshold. */
    ComparisonOperator: 'GreaterThanOrEqualTo' | 'GreaterThan' | 'LessThan' | 'LessThanOrEqualTo';
}
export interface RequestBasedServiceLevelIndicatorMetricConfig {
    /** If this SLO is related to a metric collected by Application Signals, you must use this field to specify which service the SLO metric is related to. To do so, you must specify at least the Type, Name,  */
    KeyAttributes?: Record<string, any>;
    /** If the SLO is to monitor a specific operation of the service, use this field to specify the name of that operation. */
    OperationName?: string;
    /** If the SLO is to monitor either the LATENCY or AVAILABILITY metric that Application Signals collects, use this field to specify which of those metrics is used. */
    MetricType?: 'LATENCY' | 'AVAILABILITY';
    /** Use this structure to define the metric that you want to use as the "total requests" number for a request-based SLO. This result will be divided by the "good request" or "bad request" value defined in */
    TotalRequestCountMetric?: any[];
    /** Use this structure to define the metric that you want to use as the "good request" or "bad request" value for a request-based SLO. This value observed for the metric defined in TotalRequestCountMetric */
    MonitoredRequestCountMetric?: any;
    /** Identifies the dependency using the DependencyKeyAttributes and DependencyOperationName. */
    DependencyConfig?: any;
}
export interface RequestBasedServiceLevelIndicatorConfig {
    /** Use this structure to specify the metric to be used for the SLO. */
    RequestBasedSliMetricConfig: RequestBasedServiceLevelIndicatorMetricConfig;
    /** The value that the SLI metric is compared to. This parameter is required if this SLO is tracking the Latency metric. */
    MetricThreshold?: number;
    /** The arithmetic operation to use when comparing the specified metric to the threshold. This parameter is required if this SLO is tracking the Latency metric. */
    ComparisonOperator?: 'GreaterThanOrEqualTo' | 'GreaterThan' | 'LessThan' | 'LessThanOrEqualTo';
}
export interface Goal {
    /** The time period used to evaluate the SLO. It can be either a calendar interval or rolling interval. If you omit this parameter, a rolling interval of 7 days is used. */
    Interval?: {
        RollingInterval?: any;
    } | {
        CalendarInterval?: any;
    };
    /** The threshold that determines if the goal is being met. If this is a period-based SLO, the attainment goal is the percentage of good periods that meet the threshold requirements to the total periods w */
    AttainmentGoal?: number;
    /** The percentage of remaining budget over total budget that you want to get warnings for. If you omit this parameter, the default of 50.0 is used. */
    WarningThreshold?: number;
}
export interface Tag {
    /** A string that you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources. */
    Key: string;
    /** The value for the specified tag key. */
    Value: string;
}
export interface BurnRateConfiguration {
    /** The number of minutes to use as the look-back window. */
    LookBackWindowMinutes: number;
}
export interface AuditTarget {
    /** The type of entity being audited, such as service, SLO, service_operation, or canary. */
    Type: string;
    /** The specific data identifying the audit target entity. */
    Data: any;
}
export interface DependencyConfig {
    /** This is a string-to-string map. It can include the following fields. Type designates the type of object this is. ResourceType specifies the type of the resource. This field is used only when the value */
    DependencyKeyAttributes: Record<string, string>;
    /** The name of the called operation in the dependency. */
    DependencyOperationName: string;
}
export interface AttributeFilter {
    /** The name of the attribute to filter by, such as Platform, Environment, or BusinessUnit. */
    AttributeFilterName: string;
    /** An array of values to match for the specified attribute. Services that have any of these values for the attribute will be included in the results. */
    AttributeFilterValues: any[];
}
export interface GroupingAttributeDefinition {
    /** The friendly name for this grouping attribute, such as BusinessUnit or Environment. This name is used to identify the grouping in the console and APIs. */
    GroupingName: string;
    /** An array of source keys used to derive the grouping attribute value from telemetry data, Amazon Web Services tags, or other sources. For example, ["business_unit", "team"] would look for values in tho */
    GroupingSourceKeys?: any[];
    /** The default value to use for this grouping attribute when no value can be derived from the source keys. This ensures all services have a grouping value even if the source data is missing. */
    DefaultGroupingValue?: string;
}
export interface BatchGetServiceLevelObjectiveBudgetReportInput {
    /** An array containing the IDs of the service level objectives that you want to include in the report. */
    SloIds: string[];
    /** The date and time that you want the report to be for. It is expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. */
    Timestamp: string;
}
export interface BatchUpdateExclusionWindowsInput {
    /** The list of SLO IDs to add or remove exclusion windows from. */
    SloIds: string[];
    /** A list of exclusion windows to add to the specified SLOs. You can add up to 10 exclusion windows per SLO. */
    AddExclusionWindows?: ExclusionWindow[];
    /** A list of exclusion windows to remove from the specified SLOs. The window configuration must match an existing exclusion window. */
    RemoveExclusionWindows?: ExclusionWindow[];
}
export interface CreateServiceLevelObjectiveInput {
    /** A name for this SLO. */
    Name: string;
    /** Use this array to create burn rates for this SLO. Each burn rate is a metric that indicates how fast the service is consuming the error budget, relative to the attainment goal of the SLO. */
    BurnRateConfigurations?: BurnRateConfiguration[];
    /** An optional description for this SLO. */
    Description?: string;
    /** This structure contains the attributes that determine the goal of the SLO. */
    Goal?: Goal;
    /** If this SLO is a request-based SLO, this structure defines the information about what performance metric this SLO will monitor. You can't specify both RequestBasedSliConfig and SliConfig in the same o */
    RequestBasedSliConfig?: RequestBasedServiceLevelIndicatorConfig;
    /** If this SLO is a period-based SLO, this structure defines the information about what performance metric this SLO will monitor. You can't specify both RequestBasedSliConfig and SliConfig in the same op */
    SliConfig?: ServiceLevelIndicatorConfig;
    /** A list of key-value pairs to associate with the SLO. You can associate as many as 50 tags with an SLO. To be able to associate tags with the SLO when you create the SLO, you must have the cloudwatch:T */
    Tags?: Tag[];
}
export interface DeleteServiceLevelObjectiveInput {
    /** The ARN or name of the service level objective to delete. */
    Id: string;
}
export interface GetServiceInput {
    /** The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057 Your requested start time will be roun */
    EndTime: string;
    /** Use this field to specify which service you want to retrieve information for. You must specify at least the Type, Name, and Environment attributes. This is a string-to-string map. It can include the f */
    KeyAttributes: Record<string, string>;
    /** The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057 Your requested start time will be ro */
    StartTime: string;
}
export interface GetServiceLevelObjectiveInput {
    /** The ARN or name of the SLO that you want to retrieve information about. You can find the ARNs of SLOs by using the ListServiceLevelObjectives operation. */
    Id: string;
}
export interface ListAuditFindingsInput {
    /** A list of audit targets to filter the findings by. You can specify services, SLOs, or service operations to limit the audit findings to specific entities. */
    AuditTargets: AuditTarget[];
    /** The end of the time period to retrieve audit findings for. When used in a raw HTTP Query API, it is formatted as epoch time in seconds. For example, 1698778057 */
    EndTime: string;
    /** The start of the time period to retrieve audit findings for. When used in a raw HTTP Query API, it is formatted as epoch time in seconds. For example, 1698778057 */
    StartTime: string;
    /** A list of auditor names to filter the findings by. Only findings generated by the specified auditors will be returned. The following auditors are available for configuration: slo - SloAuditor: Identif */
    Auditors?: string[];
    /** The level of details of the audit findings. Supported values: BRIEF, DETAILED. */
    DetailLevel?: 'BRIEF' | 'DETAILED';
    /** The maximum number of audit findings to return in one operation. If you omit this parameter, the default of 10 is used. */
    MaxResults?: number;
    /** Include this value, if it was returned by the previous operation, to get the next set of audit findings. */
    NextToken?: string;
}
export interface ListEntityEventsInput {
    /** The end of the time period to retrieve change events for. When used in a raw HTTP Query API, it is formatted as epoch time in seconds. For example: 1698778057 */
    EndTime: string;
    /** The entity for which to retrieve change events. This specifies the service, resource, or other entity whose event history you want to examine. This is a string-to-string map. It can include the follow */
    Entity: Record<string, string>;
    /** The start of the time period to retrieve change events for. When used in a raw HTTP Query API, it is formatted as epoch time in seconds. For example: 1698778057 */
    StartTime: string;
    /** The maximum number of change events to return in one operation. If you omit this parameter, the default of 50 is used. */
    MaxResults?: number;
    /** Include this value, if it was returned by the previous operation, to get the next set of change events. */
    NextToken?: string;
}
export interface ListGroupingAttributeDefinitionsInput {
    /** The Amazon Web Services account ID to retrieve grouping attribute definitions for. Use this when accessing grouping configurations from a different account in cross-account monitoring scenarios. */
    AwsAccountId?: string;
    /** If you are using this operation in a monitoring account, specify true to include grouping attributes from source accounts in the returned data. */
    IncludeLinkedAccounts?: boolean;
    /** Include this value, if it was returned by the previous operation, to get the next set of grouping attribute definitions. */
    NextToken?: string;
}
export interface ListServiceDependenciesInput {
    /** The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057 Your requested end time will be rounde */
    EndTime: string;
    /** Use this field to specify which service you want to retrieve information for. You must specify at least the Type, Name, and Environment attributes. This is a string-to-string map. It can include the f */
    KeyAttributes: Record<string, string>;
    /** The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057 Your requested start time will be ro */
    StartTime: string;
    /** The maximum number of results to return in one operation. If you omit this parameter, the default of 50 is used. */
    MaxResults?: number;
    /** Include this value, if it was returned by the previous operation, to get the next set of service dependencies. */
    NextToken?: string;
}
export interface ListServiceDependentsInput {
    /** The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057 Your requested start time will be roun */
    EndTime: string;
    /** Use this field to specify which service you want to retrieve information for. You must specify at least the Type, Name, and Environment attributes. This is a string-to-string map. It can include the f */
    KeyAttributes: Record<string, string>;
    /** The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057 Your requested start time will be ro */
    StartTime: string;
    /** The maximum number of results to return in one operation. If you omit this parameter, the default of 50 is used. */
    MaxResults?: number;
    /** Include this value, if it was returned by the previous operation, to get the next set of service dependents. */
    NextToken?: string;
}
export interface ListServiceLevelObjectiveExclusionWindowsInput {
    /** The ID of the SLO to list exclusion windows for. */
    Id: string;
    /** The maximum number of results to return in one operation. If you omit this parameter, the default of 50 is used. */
    MaxResults?: number;
    /** Include this value, if it was returned by the previous operation, to get the next set of service level objectives. */
    NextToken?: string;
}
export interface ListServiceLevelObjectivesInput {
    /** Identifies the dependency using the DependencyKeyAttributes and DependencyOperationName. */
    DependencyConfig?: DependencyConfig;
    /** If you are using this operation in a monitoring account, specify true to include SLO from source accounts in the returned data. When you are monitoring an account, you can use Amazon Web Services acco */
    IncludeLinkedAccounts?: boolean;
    /** You can use this optional field to specify which services you want to retrieve SLO information for. This is a string-to-string map. It can include the following fields. Type designates the type of obj */
    KeyAttributes?: Record<string, string>;
    /** The maximum number of results to return in one operation. If you omit this parameter, the default of 50 is used. */
    MaxResults?: number;
    /** Use this optional field to only include SLOs with the specified metric source types in the output. Supported types are: Service operation Service dependency CloudWatch metric */
    MetricSourceTypes?: 'ServiceOperation' | 'CloudWatchMetric' | 'ServiceDependency'[];
    /** Include this value, if it was returned by the previous operation, to get the next set of service level objectives. */
    NextToken?: string;
    /** The name of the operation that this SLO is associated with. */
    OperationName?: string;
    /** SLO's Amazon Web Services account ID. */
    SloOwnerAwsAccountId?: string;
}
export interface ListServiceOperationsInput {
    /** The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057 Your requested end time will be rounde */
    EndTime: string;
    /** Use this field to specify which service you want to retrieve information for. You must specify at least the Type, Name, and Environment attributes. This is a string-to-string map. It can include the f */
    KeyAttributes: Record<string, string>;
    /** The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057 Your requested start time will be ro */
    StartTime: string;
    /** The maximum number of results to return in one operation. If you omit this parameter, the default of 50 is used. */
    MaxResults?: number;
    /** Include this value, if it was returned by the previous operation, to get the next set of service operations. */
    NextToken?: string;
}
export interface ListServicesInput {
    /** The end of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057 Your requested start time will be roun */
    EndTime: string;
    /** The start of the time period to retrieve information about. When used in a raw HTTP Query API, it is formatted as be epoch time in seconds. For example: 1698778057 Your requested start time will be ro */
    StartTime: string;
    /** Amazon Web Services Account ID. */
    AwsAccountId?: string;
    /** If you are using this operation in a monitoring account, specify true to include services from source accounts in the returned data. */
    IncludeLinkedAccounts?: boolean;
    /** The maximum number of results to return in one operation. If you omit this parameter, the default of 50 is used. */
    MaxResults?: number;
    /** Include this value, if it was returned by the previous operation, to get the next set of services. */
    NextToken?: string;
}
export interface ListServiceStatesInput {
    /** The end of the time period to retrieve service state information for. When used in a raw HTTP Query API, it is formatted as epoch time in seconds. For example, 1698778057. */
    EndTime: string;
    /** The start of the time period to retrieve service state information for. When used in a raw HTTP Query API, it is formatted as epoch time in seconds. For example, 1698778057. */
    StartTime: string;
    /** A list of attribute filters to narrow down the services. You can filter by platform, environment, or other service attributes. */
    AttributeFilters?: AttributeFilter[];
    /** The Amazon Web Services account ID to filter service states by. Use this to limit results to services from a specific account. */
    AwsAccountId?: string;
    /** If you are using this operation in a monitoring account, specify true to include service states from source accounts in the returned data. */
    IncludeLinkedAccounts?: boolean;
    /** The maximum number of service states to return in one operation. If you omit this parameter, the default of 20 is used. */
    MaxResults?: number;
    /** Include this value, if it was returned by the previous operation, to get the next set of service states. */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the CloudWatch resource that you want to view tags for. The ARN format of an Application Signals SLO is arn:aws:cloudwatch:Region:account-id:slo:slo-name For more inf */
    ResourceArn: string;
}
export interface PutGroupingConfigurationInput {
    /** An array of grouping attribute definitions that specify how services should be grouped. Each definition includes a friendly name, source keys to derive the grouping value from, and an optional default */
    GroupingAttributeDefinitions: GroupingAttributeDefinition[];
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the CloudWatch resource that you want to set tags for. The ARN format of an Application Signals SLO is arn:aws:cloudwatch:Region:account-id:slo:slo-name For more info */
    ResourceArn: string;
    /** The list of key-value pairs to associate with the alarm. */
    Tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the CloudWatch resource that you want to delete tags from. The ARN format of an Application Signals SLO is arn:aws:cloudwatch:Region:account-id:slo:slo-name For more  */
    ResourceArn: string;
    /** The list of tag keys to remove from the resource. */
    TagKeys: string[];
}
export interface UpdateServiceLevelObjectiveInput {
    /** The Amazon Resource Name (ARN) or name of the service level objective that you want to update. */
    Id: string;
    /** Use this array to create burn rates for this SLO. Each burn rate is a metric that indicates how fast the service is consuming the error budget, relative to the attainment goal of the SLO. */
    BurnRateConfigurations?: BurnRateConfiguration[];
    /** An optional description for the SLO. */
    Description?: string;
    /** A structure that contains the attributes that determine the goal of the SLO. This includes the time period for evaluation and the attainment threshold. */
    Goal?: Goal;
    /** If this SLO is a request-based SLO, this structure defines the information about what performance metric this SLO will monitor. You can't specify both SliConfig and RequestBasedSliConfig in the same o */
    RequestBasedSliConfig?: RequestBasedServiceLevelIndicatorConfig;
    /** If this SLO is a period-based SLO, this structure defines the information about what performance metric this SLO will monitor. */
    SliConfig?: ServiceLevelIndicatorConfig;
}
/** Application Signals service binding for Step Functions SDK integrations. */
export declare class ApplicationSignals {
    constructor();
    batchGetServiceLevelObjectiveBudgetReport<T>(params: BatchGetServiceLevelObjectiveBudgetReportInput): Promise<T>;
    batchUpdateExclusionWindows<T>(params: BatchUpdateExclusionWindowsInput): Promise<T>;
    createServiceLevelObjective<T>(params: CreateServiceLevelObjectiveInput): Promise<T>;
    deleteGroupingConfiguration<T>(): Promise<T>;
    deleteServiceLevelObjective<T>(params: DeleteServiceLevelObjectiveInput): Promise<T>;
    getService<T>(params: GetServiceInput): Promise<T>;
    getServiceLevelObjective<T>(params: GetServiceLevelObjectiveInput): Promise<T>;
    listAuditFindings<T>(params: ListAuditFindingsInput): Promise<T>;
    listEntityEvents<T>(params: ListEntityEventsInput): Promise<T>;
    listGroupingAttributeDefinitions<T>(params: ListGroupingAttributeDefinitionsInput): Promise<T>;
    listServiceDependencies<T>(params: ListServiceDependenciesInput): Promise<T>;
    listServiceDependents<T>(params: ListServiceDependentsInput): Promise<T>;
    listServiceLevelObjectiveExclusionWindows<T>(params: ListServiceLevelObjectiveExclusionWindowsInput): Promise<T>;
    listServiceLevelObjectives<T>(params: ListServiceLevelObjectivesInput): Promise<T>;
    listServiceOperations<T>(params: ListServiceOperationsInput): Promise<T>;
    listServices<T>(params: ListServicesInput): Promise<T>;
    listServiceStates<T>(params: ListServiceStatesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    putGroupingConfiguration<T>(params: PutGroupingConfigurationInput): Promise<T>;
    startDiscovery<T>(params: Record<string, any>): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateServiceLevelObjective<T>(params: UpdateServiceLevelObjectiveInput): Promise<T>;
}
//# sourceMappingURL=ApplicationSignals.d.ts.map