export interface FilterParameter {
    /** A data field that you want to filter, to further scope your application's Internet Monitor data in a repository that you created by running a query. A field might be city, for example. The field must  */
    Field?: string;
    /** The operator to use with the filter field and a value, such as not_equals. */
    Operator?: 'EQUALS' | 'NOT_EQUALS';
    /** One or more values to be used, together with the specified operator, to filter data for a query. For example, you could specify an array of values such as ["Seattle", "Redmond"]. Values in the array a */
    Values?: any[];
}
export interface S3Config {
    /** The Amazon S3 bucket name. */
    BucketName?: string;
    /** The Amazon S3 bucket prefix. */
    BucketPrefix?: string;
    /** The status of publishing Internet Monitor internet measurements to an Amazon S3 bucket. */
    LogDeliveryStatus?: 'ENABLED' | 'DISABLED';
}
export interface InternetMeasurementsLogDelivery {
    /** The configuration information for publishing Internet Monitor internet measurements to Amazon S3. The configuration includes the bucket name and (optionally) prefix for the S3 bucket to store the meas */
    S3Config?: S3Config;
}
export interface LocalHealthEventsConfig {
    /** The status of whether Internet Monitor creates a health event based on a threshold percentage set for a local health score. The status can be ENABLED or DISABLED. */
    Status?: 'ENABLED' | 'DISABLED';
    /** The health event threshold percentage set for a local health score. */
    HealthScoreThreshold?: number;
    /** The minimum percentage of overall traffic for an application that must be impacted by an issue before Internet Monitor creates an event when a threshold is crossed for a local health score. If you don */
    MinTrafficImpact?: number;
}
export interface HealthEventsConfig {
    /** The health event threshold percentage set for availability scores. */
    AvailabilityScoreThreshold?: number;
    /** The health event threshold percentage set for performance scores. */
    PerformanceScoreThreshold?: number;
    /** The configuration that determines the threshold and other conditions for when Internet Monitor creates a health event for a local availability issue. */
    AvailabilityLocalHealthEventsConfig?: LocalHealthEventsConfig;
    /** The configuration that determines the threshold and other conditions for when Internet Monitor creates a health event for a local performance issue. */
    PerformanceLocalHealthEventsConfig?: LocalHealthEventsConfig;
}
export interface DeleteMonitorInput {
    /** The name of the monitor to delete. */
    MonitorName: string;
}
export interface GetHealthEventInput {
    /** The internally-generated identifier of a health event. Because EventID contains the forward slash (“/”) character, you must URL-encode the EventID field in the request URL. */
    EventId: string;
    /** The name of the monitor. */
    MonitorName: string;
    /** The account ID for an account that you've set up cross-account sharing for in Amazon CloudWatch Internet Monitor. You configure cross-account sharing by using Amazon CloudWatch Observability Access Ma */
    LinkedAccountId?: string;
}
export interface GetInternetEventInput {
    /** The EventId of the internet event to return information for. */
    EventId: string;
}
export interface GetMonitorInput {
    /** The name of the monitor. */
    MonitorName: string;
    /** The account ID for an account that you've set up cross-account sharing for in Amazon CloudWatch Internet Monitor. You configure cross-account sharing by using Amazon CloudWatch Observability Access Ma */
    LinkedAccountId?: string;
}
export interface GetQueryResultsInput {
    /** The name of the monitor to return data for. */
    MonitorName: string;
    /** The ID of the query that you want to return data results for. A QueryId is an internally-generated identifier for a specific query. */
    QueryId: string;
    /** The number of query results that you want to return with this call. */
    MaxResults?: number;
    /** The token for the next set of results. You receive this token from a previous call. */
    NextToken?: string;
}
export interface GetQueryStatusInput {
    /** The name of the monitor. */
    MonitorName: string;
    /** The ID of the query that you want to return the status for. A QueryId is an internally-generated dentifier for a specific query. */
    QueryId: string;
}
export interface ListHealthEventsInput {
    /** The name of the monitor. */
    MonitorName: string;
    /** The time when a health event ended. If the health event is still ongoing, then the end time is not set. */
    EndTime?: string;
    /** The status of a health event. */
    EventStatus?: 'ACTIVE' | 'RESOLVED';
    /** The account ID for an account that you've set up cross-account sharing for in Amazon CloudWatch Internet Monitor. You configure cross-account sharing by using Amazon CloudWatch Observability Access Ma */
    LinkedAccountId?: string;
    /** The number of health event objects that you want to return with this call. */
    MaxResults?: number;
    /** The token for the next set of results. You receive this token from a previous call. */
    NextToken?: string;
    /** The time when a health event started. */
    StartTime?: string;
}
export interface ListInternetEventsInput {
    /** The end time of the time window that you want to get a list of internet events for. */
    EndTime?: string;
    /** The status of an internet event. */
    EventStatus?: string;
    /** The type of network impairment. */
    EventType?: string;
    /** The number of query results that you want to return with this call. */
    MaxResults?: number;
    /** The token for the next set of results. You receive this token from a previous call. */
    NextToken?: string;
    /** The start time of the time window that you want to get a list of internet events for. */
    StartTime?: string;
}
export interface ListMonitorsInput {
    /** A boolean option that you can set to TRUE to include monitors for linked accounts in a list of monitors, when you've set up cross-account sharing in Amazon CloudWatch Internet Monitor. You configure c */
    IncludeLinkedAccounts?: boolean;
    /** The number of monitor objects that you want to return with this call. */
    MaxResults?: number;
    /** The status of a monitor. This includes the status of the data processing for the monitor and the status of the monitor itself. For information about the statuses for a monitor, see Monitor. */
    MonitorStatus?: string;
    /** The token for the next set of results. You receive this token from a previous call. */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) for a resource. */
    ResourceArn: string;
}
export interface StartQueryInput {
    /** The timestamp that is the end of the period that you want to retrieve data for with your query. */
    EndTime: string;
    /** The name of the monitor to query. */
    MonitorName: string;
    /** The type of query to run. The following are the three types of queries that you can run using the Internet Monitor query interface: MEASUREMENTS: Provides availability score, performance score, total  */
    QueryType: 'MEASUREMENTS' | 'TOP_LOCATIONS' | 'TOP_LOCATION_DETAILS' | 'OVERALL_TRAFFIC_SUGGESTIONS' | 'OVERALL_TRAFFIC_SUGGESTIONS_DETAILS' | 'ROUTING_SUGGESTIONS';
    /** The timestamp that is the beginning of the period that you want to retrieve data for with your query. */
    StartTime: string;
    /** The FilterParameters field that you use with Amazon CloudWatch Internet Monitor queries is a string the defines how you want a query to be filtered. The filter parameters that you can specify depend o */
    FilterParameters?: FilterParameter[];
    /** The account ID for an account that you've set up cross-account sharing for in Amazon CloudWatch Internet Monitor. You configure cross-account sharing by using Amazon CloudWatch Observability Access Ma */
    LinkedAccountId?: string;
}
export interface StopQueryInput {
    /** The name of the monitor. */
    MonitorName: string;
    /** The ID of the query that you want to stop. A QueryId is an internally-generated identifier for a specific query. */
    QueryId: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) for a tag that you add to a resource. Tags are supported only for monitors in Amazon CloudWatch Internet Monitor. */
    ResourceArn: string;
    /** Tags that you add to a resource. You can add a maximum of 50 tags in Internet Monitor. */
    Tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) for a tag you remove a resource from. */
    ResourceArn: string;
    /** Tag keys that you remove from a resource. */
    TagKeys: string[];
}
export interface UpdateMonitorInput {
    /** The name of the monitor. */
    MonitorName: string;
    /** A unique, case-sensitive string of up to 64 ASCII characters that you specify to make an idempotent API request. You should not reuse the same client token for other API requests. */
    ClientToken?: string;
    /** The list of health score thresholds. A threshold percentage for health scores, along with other configuration information, determines when Internet Monitor creates a health event when there's an inter */
    HealthEventsConfig?: HealthEventsConfig;
    /** Publish internet measurements for Internet Monitor to another location, such as an Amazon S3 bucket. The measurements are also published to Amazon CloudWatch Logs. */
    InternetMeasurementsLogDelivery?: InternetMeasurementsLogDelivery;
    /** The maximum number of city-networks to monitor for your application. A city-network is the location (city) where clients access your application resources from and the ASN or network provider, such as */
    MaxCityNetworksToMonitor?: number;
    /** The resources to include in a monitor, which you provide as a set of Amazon Resource Names (ARNs). Resources can be VPCs, NLBs, Amazon CloudFront distributions, or Amazon WorkSpaces directories. You c */
    ResourcesToAdd?: string[];
    /** The resources to remove from a monitor, which you provide as a set of Amazon Resource Names (ARNs). */
    ResourcesToRemove?: string[];
    /** The status for a monitor. The accepted values for Status with the UpdateMonitor API call are the following: ACTIVE and INACTIVE. The following values are not accepted: PENDING, and ERROR. */
    Status?: 'PENDING' | 'ACTIVE' | 'INACTIVE' | 'ERROR';
    /** The percentage of the internet-facing traffic for your application that you want to monitor with this monitor. If you set a city-networks maximum, that limit overrides the traffic percentage that you  */
    TrafficPercentageToMonitor?: number;
}
/** InternetMonitor service binding for Step Functions SDK integrations. */
export declare class InternetMonitor {
    constructor();
    deleteMonitor<T>(params: DeleteMonitorInput): Promise<T>;
    getHealthEvent<T>(params: GetHealthEventInput): Promise<T>;
    getInternetEvent<T>(params: GetInternetEventInput): Promise<T>;
    getMonitor<T>(params: GetMonitorInput): Promise<T>;
    getQueryResults<T>(params: GetQueryResultsInput): Promise<T>;
    getQueryStatus<T>(params: GetQueryStatusInput): Promise<T>;
    listHealthEvents<T>(params: ListHealthEventsInput): Promise<T>;
    listInternetEvents<T>(params: ListInternetEventsInput): Promise<T>;
    listMonitors<T>(params: ListMonitorsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    startQuery<T>(params: StartQueryInput): Promise<T>;
    stopQuery<T>(params: StopQueryInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateMonitor<T>(params: UpdateMonitorInput): Promise<T>;
}
//# sourceMappingURL=InternetMonitor.d.ts.map