export interface MetricDefinitionRequest {
    /** The name for the metric that is defined in this structure. For custom metrics, you can specify any name that you like. For extended metrics, valid values are the following: PerformanceNavigationDurati */
    Name: string;
    /** The field within the event object that the metric value is sourced from. If you omit this field, a hardcoded value of 1 is pushed as the metric value. This is useful if you want to count the number of */
    ValueKey?: string;
    /** The CloudWatch metric unit to use for this metric. If you omit this field, the metric is recorded with no unit. */
    UnitLabel?: string;
    /** Use this field only if you are sending the metric to CloudWatch. This field is a map of field paths to dimension names. It defines the dimensions to associate with this metric in CloudWatch. For exten */
    DimensionKeys?: Record<string, any>;
    /** The pattern that defines the metric, specified as a JSON object. RUM checks events that happen in a user's session against the pattern, and events that match the pattern are sent to the metric destina */
    EventPattern?: string;
    /** If this structure is for a custom metric instead of an extended metrics, use this parameter to define the metric namespace for that custom metric. Do not specify this parameter if this structure is fo */
    Namespace?: string;
}
export interface AppMonitorConfiguration {
    /** The ID of the Amazon Cognito identity pool that is used to authorize the sending of data to RUM. */
    IdentityPoolId?: string;
    /** A list of URLs in your website or application to exclude from RUM data collection. You can't include both ExcludedPages and IncludedPages in the same operation. */
    ExcludedPages?: string[];
    /** If this app monitor is to collect data from only certain pages in your application, this structure lists those pages. You can't include both ExcludedPages and IncludedPages in the same operation. */
    IncludedPages?: string[];
    /** A list of pages in your application that are to be displayed with a "favorite" icon in the CloudWatch RUM console. */
    FavoritePages?: string[];
    /** Specifies the portion of user sessions to use for RUM data collection. Choosing a higher portion gives you more data but also incurs more costs. The range for this value is 0 to 1 inclusive. Setting t */
    SessionSampleRate?: number;
    /** The ARN of the guest IAM role that is attached to the Amazon Cognito identity pool that is used to authorize the sending of data to RUM. It is possible that an app monitor does not have a value for Gu */
    GuestRoleArn?: string;
    /** If you set this to true, the RUM web client sets two cookies, a session cookie and a user cookie. The cookies allow the RUM web client to collect data relating to the number of users an application ha */
    AllowCookies?: boolean;
    /** An array that lists the types of telemetry data that this app monitor is to collect. errors indicates that RUM collects data about unhandled JavaScript errors raised by your application. performance i */
    Telemetries?: 'errors' | 'performance' | 'http'[];
    /** If you set this to true, RUM enables X-Ray tracing for the user sessions that RUM samples. RUM adds an X-Ray trace header to allowed HTTP requests. It also records an X-Ray segment for allowed HTTP re */
    EnableXRay?: boolean;
}
export interface CustomEvents {
    /** Specifies whether this app monitor allows the web client to define and send custom events. The default is for custom events to be DISABLED. */
    Status?: 'ENABLED' | 'DISABLED';
}
export interface JavaScriptSourceMaps {
    /** Specifies whether JavaScript error stack traces should be unminified for this app monitor. The default is for JavaScript error stack trace unminification to be DISABLED. */
    Status: 'ENABLED' | 'DISABLED';
    /** The S3Uri of the bucket or folder that stores the source map files. It is required if status is ENABLED. */
    S3Uri?: string;
}
export interface DeobfuscationConfiguration {
    /** A structure that contains the configuration for how an app monitor can unminify JavaScript error stack traces using source maps. */
    JavaScriptSourceMaps?: JavaScriptSourceMaps;
}
export interface TimeRange {
    /** The beginning of the time range to retrieve performance events from. */
    After: number;
    /** The end of the time range to retrieve performance events from. If you omit this, the time range extends to the time that this operation is performed. */
    Before?: number;
}
export interface QueryFilter {
    /** The name of a key to search for. The filter returns only the events that match the Name and Values that you specify. Valid values for Name are Browser | Device | Country | Page | OS | EventType | Inve */
    Name?: string;
    /** The values of the Name that are to be be included in the returned results. */
    Values?: any[];
}
export interface AppMonitorDetails {
    /** The name of the app monitor. */
    name?: string;
    /** The unique ID of the app monitor. */
    id?: string;
    /** The version of the app monitor. */
    version?: string;
}
export interface UserDetails {
    /** The ID of the user for this user session. This ID is generated by RUM and does not include any personally identifiable information about the user. */
    userId?: string;
    /** The session ID that the performance events are from. */
    sessionId?: string;
}
export interface RumEvent {
    /** A unique ID for this event. */
    id: string;
    /** The exact time that this event occurred. */
    timestamp: string;
    /** The JSON schema that denotes the type of event this is, such as a page load or a new session. */
    type: string;
    /** Metadata about this event, which contains a JSON serialization of the identity of the user for this session. The user information comes from information such as the HTTP user-agent request header and  */
    metadata?: string;
    /** A string containing details about the event. */
    details: string;
}
export interface BatchCreateRumMetricDefinitionsInput {
    /** The name of the CloudWatch RUM app monitor that is to send the metrics. */
    AppMonitorName: string;
    /** The destination to send the metrics to. Valid values are CloudWatch and Evidently. If you specify Evidently, you must also specify the Amazon Resource Name (ARN) of the CloudWatchEvidently experiment  */
    Destination: 'CloudWatch' | 'Evidently';
    /** An array of structures which define the metrics that you want to send. */
    MetricDefinitions: MetricDefinitionRequest[];
    /** This parameter is required if Destination is Evidently. If Destination is CloudWatch, do not use this parameter. This parameter specifies the ARN of the Evidently experiment that is to receive the met */
    DestinationArn?: string;
}
export interface BatchDeleteRumMetricDefinitionsInput {
    /** The name of the CloudWatch RUM app monitor that is sending these metrics. */
    AppMonitorName: string;
    /** Defines the destination where you want to stop sending the specified metrics. Valid values are CloudWatch and Evidently. If you specify Evidently, you must also specify the ARN of the CloudWatchEviden */
    Destination: 'CloudWatch' | 'Evidently';
    /** An array of structures which define the metrics that you want to stop sending. */
    MetricDefinitionIds: string[];
    /** This parameter is required if Destination is Evidently. If Destination is CloudWatch, do not use this parameter. This parameter specifies the ARN of the Evidently experiment that was receiving the met */
    DestinationArn?: string;
}
export interface BatchGetRumMetricDefinitionsInput {
    /** The name of the CloudWatch RUM app monitor that is sending the metrics. */
    AppMonitorName: string;
    /** The type of destination that you want to view metrics for. Valid values are CloudWatch and Evidently. */
    Destination: 'CloudWatch' | 'Evidently';
    /** This parameter is required if Destination is Evidently. If Destination is CloudWatch, do not use this parameter. This parameter specifies the ARN of the Evidently experiment that corresponds to the de */
    DestinationArn?: string;
    /** The maximum number of results to return in one operation. The default is 50. The maximum that you can specify is 100. To retrieve the remaining results, make another call with the returned NextToken v */
    MaxResults?: number;
    /** Use the token returned by the previous operation to request the next page of results. */
    NextToken?: string;
}
export interface CreateAppMonitorInput {
    /** A name for the app monitor. */
    Name: string;
    /** A structure that contains much of the configuration data for the app monitor. If you are using Amazon Cognito for authorization, you must include this structure in your request, and it must include th */
    AppMonitorConfiguration?: AppMonitorConfiguration;
    /** Specifies whether this app monitor allows the web client to define and send custom events. If you omit this parameter, custom events are DISABLED. For more information about custom events, see Send cu */
    CustomEvents?: CustomEvents;
    /** Data collected by RUM is kept by RUM for 30 days and then deleted. This parameter specifies whether RUM sends a copy of this telemetry data to Amazon CloudWatch Logs in your account. This enables you  */
    CwLogEnabled?: boolean;
    /** A structure that contains the configuration for how an app monitor can deobfuscate stack traces. */
    DeobfuscationConfiguration?: DeobfuscationConfiguration;
    /** The top-level internet domain name for which your application has administrative authority. */
    Domain?: string;
    /** List the domain names for which your application has administrative authority. The CreateAppMonitor requires either the domain or the domain list. */
    DomainList?: string[];
    /** The platform type for the app monitor. Valid values are Web for web applications, Android for Android applications, and iOS for IOS applications. If you omit this parameter, the default is Web. */
    Platform?: 'Web' | 'Android' | 'iOS';
    /** Assigns one or more tags (key-value pairs) to the app monitor. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission t */
    Tags?: Record<string, string>;
}
export interface DeleteAppMonitorInput {
    /** The name of the app monitor to delete. */
    Name: string;
}
export interface DeleteResourcePolicyInput {
    /** The app monitor that you want to remove the resource policy from. */
    Name: string;
    /** Specifies a specific policy revision to delete. Provide a PolicyRevisionId to ensure an atomic delete operation. If the revision ID that you provide doesn't match the latest policy revision ID, the re */
    PolicyRevisionId?: string;
}
export interface DeleteRumMetricsDestinationInput {
    /** The name of the app monitor that is sending metrics to the destination that you want to delete. */
    AppMonitorName: string;
    /** The type of destination to delete. Valid values are CloudWatch and Evidently. */
    Destination: 'CloudWatch' | 'Evidently';
    /** This parameter is required if Destination is Evidently. If Destination is CloudWatch, do not use this parameter. This parameter specifies the ARN of the Evidently experiment that corresponds to the de */
    DestinationArn?: string;
}
export interface GetAppMonitorInput {
    /** The app monitor to retrieve information for. */
    Name: string;
}
export interface GetAppMonitorDataInput {
    /** The name of the app monitor that collected the data that you want to retrieve. */
    Name: string;
    /** A structure that defines the time range that you want to retrieve results from. */
    TimeRange: TimeRange;
    /** An array of structures that you can use to filter the results to those that match one or more sets of key-value pairs that you specify. */
    Filters?: QueryFilter[];
    /** The maximum number of results to return in one operation. */
    MaxResults?: number;
    /** Use the token returned by the previous operation to request the next page of results. */
    NextToken?: string;
}
export interface GetResourcePolicyInput {
    /** The name of the app monitor that is associated with the resource-based policy that you want to view. */
    Name: string;
}
export interface ListAppMonitorsInput {
    /** The maximum number of results to return in one operation. The default is 50. The maximum that you can specify is 100. */
    MaxResults?: number;
    /** Use the token returned by the previous operation to request the next page of results. */
    NextToken?: string;
}
export interface ListRumMetricsDestinationsInput {
    /** The name of the app monitor associated with the destinations that you want to retrieve. */
    AppMonitorName: string;
    /** The maximum number of results to return in one operation. The default is 50. The maximum that you can specify is 100. To retrieve the remaining results, make another call with the returned NextToken v */
    MaxResults?: number;
    /** Use the token returned by the previous operation to request the next page of results. */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The ARN of the resource that you want to see the tags of. */
    ResourceArn: string;
}
export interface PutResourcePolicyInput {
    /** The name of the app monitor that you want to apply this resource-based policy to. To find the names of your app monitors, you can use the ListAppMonitors operation. */
    Name: string;
    /** The JSON to use as the resource policy. The document can be up to 4 KB in size. For more information about the contents and syntax for this policy, see Using resource-based policies with CloudWatch RU */
    PolicyDocument: string;
    /** A string value that you can use to conditionally update your policy. You can provide the revision ID of your existing policy to make mutating requests against that policy. When you assign a policy rev */
    PolicyRevisionId?: string;
}
export interface PutRumEventsInput {
    /** A structure that contains information about the app monitor that collected this telemetry information. */
    AppMonitorDetails: AppMonitorDetails;
    /** A unique identifier for this batch of RUM event data. */
    BatchId: string;
    /** The ID of the app monitor that is sending this data. */
    Id: string;
    /** An array of structures that contain the telemetry event data. */
    RumEvents: RumEvent[];
    /** A structure that contains information about the user session that this batch of events was collected from. */
    UserDetails: UserDetails;
    /** If the app monitor uses a resource-based policy that requires PutRumEvents requests to specify a certain alias, specify that alias here. This alias will be compared to the rum:alias context key in the */
    Alias?: string;
}
export interface PutRumMetricsDestinationInput {
    /** The name of the CloudWatch RUM app monitor that will send the metrics. */
    AppMonitorName: string;
    /** Defines the destination to send the metrics to. Valid values are CloudWatch and Evidently. If you specify Evidently, you must also specify the ARN of the CloudWatchEvidently experiment that is to be t */
    Destination: 'CloudWatch' | 'Evidently';
    /** Use this parameter only if Destination is Evidently. This parameter specifies the ARN of the Evidently experiment that will receive the extended metrics. */
    DestinationArn?: string;
    /** This parameter is required if Destination is Evidently. If Destination is CloudWatch, don't use this parameter. This parameter specifies the ARN of an IAM role that RUM will assume to write to the Evi */
    IamRoleArn?: string;
}
export interface TagResourceInput {
    /** The ARN of the CloudWatch RUM resource that you're adding tags to. */
    ResourceArn: string;
    /** The list of key-value pairs to associate with the resource. */
    Tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The ARN of the CloudWatch RUM resource that you're removing tags from. */
    ResourceArn: string;
    /** The list of tag keys to remove from the resource. */
    TagKeys: string[];
}
export interface UpdateAppMonitorInput {
    /** The name of the app monitor to update. */
    Name: string;
    /** A structure that contains much of the configuration data for the app monitor. If you are using Amazon Cognito for authorization, you must include this structure in your request, and it must include th */
    AppMonitorConfiguration?: AppMonitorConfiguration;
    /** Specifies whether this app monitor allows the web client to define and send custom events. The default is for custom events to be DISABLED. For more information about custom events, see Send custom ev */
    CustomEvents?: CustomEvents;
    /** Data collected by RUM is kept by RUM for 30 days and then deleted. This parameter specifies whether RUM sends a copy of this telemetry data to Amazon CloudWatch Logs in your account. This enables you  */
    CwLogEnabled?: boolean;
    /** A structure that contains the configuration for how an app monitor can deobfuscate stack traces. */
    DeobfuscationConfiguration?: DeobfuscationConfiguration;
    /** The top-level internet domain name for which your application has administrative authority. */
    Domain?: string;
    /** List the domain names for which your application has administrative authority. The UpdateAppMonitor allows either the domain or the domain list. */
    DomainList?: string[];
}
export interface UpdateRumMetricDefinitionInput {
    /** The name of the CloudWatch RUM app monitor that sends these metrics. */
    AppMonitorName: string;
    /** The destination to send the metrics to. Valid values are CloudWatch and Evidently. If you specify Evidently, you must also specify the ARN of the CloudWatchEvidently experiment that will receive the m */
    Destination: 'CloudWatch' | 'Evidently';
    /** A structure that contains the new definition that you want to use for this metric. */
    MetricDefinition: MetricDefinitionRequest;
    /** The ID of the metric definition to update. */
    MetricDefinitionId: string;
    /** This parameter is required if Destination is Evidently. If Destination is CloudWatch, do not use this parameter. This parameter specifies the ARN of the Evidently experiment that is to receive the met */
    DestinationArn?: string;
}
/** RUM service binding for Step Functions SDK integrations. */
export declare class RUM {
    constructor();
    batchCreateRumMetricDefinitions<T>(params: BatchCreateRumMetricDefinitionsInput): Promise<T>;
    batchDeleteRumMetricDefinitions<T>(params: BatchDeleteRumMetricDefinitionsInput): Promise<T>;
    batchGetRumMetricDefinitions<T>(params: BatchGetRumMetricDefinitionsInput): Promise<T>;
    createAppMonitor<T>(params: CreateAppMonitorInput): Promise<T>;
    deleteAppMonitor<T>(params: DeleteAppMonitorInput): Promise<T>;
    deleteResourcePolicy<T>(params: DeleteResourcePolicyInput): Promise<T>;
    deleteRumMetricsDestination<T>(params: DeleteRumMetricsDestinationInput): Promise<T>;
    getAppMonitor<T>(params: GetAppMonitorInput): Promise<T>;
    getAppMonitorData<T>(params: GetAppMonitorDataInput): Promise<T>;
    getResourcePolicy<T>(params: GetResourcePolicyInput): Promise<T>;
    listAppMonitors<T>(params: ListAppMonitorsInput): Promise<T>;
    listRumMetricsDestinations<T>(params: ListRumMetricsDestinationsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    putResourcePolicy<T>(params: PutResourcePolicyInput): Promise<T>;
    putRumEvents<T>(params: PutRumEventsInput): Promise<T>;
    putRumMetricsDestination<T>(params: PutRumMetricsDestinationInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateAppMonitor<T>(params: UpdateAppMonitorInput): Promise<T>;
    updateRumMetricDefinition<T>(params: UpdateRumMetricDefinitionInput): Promise<T>;
}
//# sourceMappingURL=RUM.d.ts.map