import * as HttpClient from "effect/unstable/http/HttpClient";
import * as S from "effect/Schema";
import * as stream from "effect/Stream";
import * as API from "../client/api.ts";
import type { Credentials } from "../credentials.ts";
import type { CommonErrors } from "../errors.ts";
import type { Region } from "../region.ts";
export type Arn = string;
export type TagKey = string;
export type TagValue = string;
export type AppMonitorId = string;
export type JsonValue = string;
export type Alias = string;
export type AppMonitorName = string;
export type AppMonitorDomain = string;
export type ISOTimestampString = string;
export type StateEnum = string;
export type IdentityPoolId = string;
export type Url = string;
export type SessionSampleRate = number;
export type Telemetry = string;
export type CustomEventsStatus = string;
export type DeobfuscationStatus = string;
export type DeobfuscationS3Uri = string;
export type AppMonitorPlatform = string;
export type MaxResultsInteger = number;
export type MetricDestination = string;
export type DestinationArn = string;
export type MetricName = string;
export type ValueKey = string;
export type UnitLabel = string;
export type DimensionKey = string;
export type DimensionName = string;
export type EventPattern = string;
export type Namespace = string;
export type MetricDefinitionId = string;
export type PolicyRevisionId = string;
export type QueryTimestamp = number;
export type QueryFilterKey = string;
export type QueryFilterValue = string;
export type MaxQueryResults = number;
export type Token = string;
export type EventData = string;
export type IamRoleArn = string;
export interface ListTagsForResourceRequest {
    ResourceArn: string;
}
export declare const ListTagsForResourceRequest: S.Schema<ListTagsForResourceRequest>;
export type TagMap = {
    [key: string]: string | undefined;
};
export declare const TagMap: S.$Record<S.String, S.optional<S.String>>;
export interface ListTagsForResourceResponse {
    ResourceArn: string;
    Tags: {
        [key: string]: string | undefined;
    };
}
export declare const ListTagsForResourceResponse: S.Schema<ListTagsForResourceResponse>;
export interface AppMonitorDetails {
    name?: string;
    id?: string;
    version?: string;
}
export declare const AppMonitorDetails: S.Schema<AppMonitorDetails>;
export interface UserDetails {
    userId?: string;
    sessionId?: string;
}
export declare const UserDetails: S.Schema<UserDetails>;
export interface RumEvent {
    id: string;
    timestamp: Date;
    type: string;
    metadata?: string;
    details: string;
}
export declare const RumEvent: S.Schema<RumEvent>;
export type RumEventList = RumEvent[];
export declare const RumEventList: S.$Array<S.Schema<RumEvent>>;
export interface PutRumEventsRequest {
    Id: string;
    BatchId: string;
    AppMonitorDetails: AppMonitorDetails;
    UserDetails: UserDetails;
    RumEvents: RumEvent[];
    Alias?: string;
}
export declare const PutRumEventsRequest: S.Schema<PutRumEventsRequest>;
export interface PutRumEventsResponse {
}
export declare const PutRumEventsResponse: S.Schema<PutRumEventsResponse>;
export interface TagResourceRequest {
    ResourceArn: string;
    Tags: {
        [key: string]: string | undefined;
    };
}
export declare const TagResourceRequest: S.Schema<TagResourceRequest>;
export interface TagResourceResponse {
}
export declare const TagResourceResponse: S.Schema<TagResourceResponse>;
export type TagKeyList = string[];
export declare const TagKeyList: S.$Array<S.String>;
export interface UntagResourceRequest {
    ResourceArn: string;
    TagKeys: string[];
}
export declare const UntagResourceRequest: S.Schema<UntagResourceRequest>;
export interface UntagResourceResponse {
}
export declare const UntagResourceResponse: S.Schema<UntagResourceResponse>;
export interface GetAppMonitorRequest {
    Name: string;
}
export declare const GetAppMonitorRequest: S.Schema<GetAppMonitorRequest>;
export type AppMonitorDomainList = string[];
export declare const AppMonitorDomainList: S.$Array<S.String>;
export type Pages = string[];
export declare const Pages: S.$Array<S.String>;
export type FavoritePages = string[];
export declare const FavoritePages: S.$Array<S.String>;
export type Telemetries = string[];
export declare const Telemetries: S.$Array<S.String>;
export interface AppMonitorConfiguration {
    IdentityPoolId?: string;
    ExcludedPages?: string[];
    IncludedPages?: string[];
    FavoritePages?: string[];
    SessionSampleRate?: number;
    GuestRoleArn?: string;
    AllowCookies?: boolean;
    Telemetries?: string[];
    EnableXRay?: boolean;
}
export declare const AppMonitorConfiguration: S.Schema<AppMonitorConfiguration>;
export interface CwLog {
    CwLogEnabled?: boolean;
    CwLogGroup?: string;
}
export declare const CwLog: S.Schema<CwLog>;
export interface DataStorage {
    CwLog?: CwLog;
}
export declare const DataStorage: S.Schema<DataStorage>;
export interface CustomEvents {
    Status?: string;
}
export declare const CustomEvents: S.Schema<CustomEvents>;
export interface JavaScriptSourceMaps {
    Status: string;
    S3Uri?: string;
}
export declare const JavaScriptSourceMaps: S.Schema<JavaScriptSourceMaps>;
export interface DeobfuscationConfiguration {
    JavaScriptSourceMaps?: JavaScriptSourceMaps;
}
export declare const DeobfuscationConfiguration: S.Schema<DeobfuscationConfiguration>;
export interface AppMonitor {
    Name?: string;
    Domain?: string;
    DomainList?: string[];
    Id?: string;
    Created?: string;
    LastModified?: string;
    Tags?: {
        [key: string]: string | undefined;
    };
    State?: string;
    AppMonitorConfiguration?: AppMonitorConfiguration;
    DataStorage?: DataStorage;
    CustomEvents?: CustomEvents;
    DeobfuscationConfiguration?: DeobfuscationConfiguration;
    Platform?: string;
}
export declare const AppMonitor: S.Schema<AppMonitor>;
export interface GetAppMonitorResponse {
    AppMonitor?: AppMonitor;
}
export declare const GetAppMonitorResponse: S.Schema<GetAppMonitorResponse>;
export interface UpdateAppMonitorRequest {
    Name: string;
    Domain?: string;
    DomainList?: string[];
    AppMonitorConfiguration?: AppMonitorConfiguration;
    CwLogEnabled?: boolean;
    CustomEvents?: CustomEvents;
    DeobfuscationConfiguration?: DeobfuscationConfiguration;
}
export declare const UpdateAppMonitorRequest: S.Schema<UpdateAppMonitorRequest>;
export interface UpdateAppMonitorResponse {
}
export declare const UpdateAppMonitorResponse: S.Schema<UpdateAppMonitorResponse>;
export interface DeleteAppMonitorRequest {
    Name: string;
}
export declare const DeleteAppMonitorRequest: S.Schema<DeleteAppMonitorRequest>;
export interface DeleteAppMonitorResponse {
}
export declare const DeleteAppMonitorResponse: S.Schema<DeleteAppMonitorResponse>;
export interface ListAppMonitorsRequest {
    MaxResults?: number;
    NextToken?: string;
}
export declare const ListAppMonitorsRequest: S.Schema<ListAppMonitorsRequest>;
export interface AppMonitorSummary {
    Name?: string;
    Id?: string;
    Created?: string;
    LastModified?: string;
    State?: string;
    Platform?: string;
}
export declare const AppMonitorSummary: S.Schema<AppMonitorSummary>;
export type AppMonitorSummaryList = AppMonitorSummary[];
export declare const AppMonitorSummaryList: S.$Array<S.Schema<AppMonitorSummary>>;
export interface ListAppMonitorsResponse {
    NextToken?: string;
    AppMonitorSummaries?: AppMonitorSummary[];
}
export declare const ListAppMonitorsResponse: S.Schema<ListAppMonitorsResponse>;
export type DimensionKeysMap = {
    [key: string]: string | undefined;
};
export declare const DimensionKeysMap: S.$Record<S.String, S.optional<S.String>>;
export interface MetricDefinitionRequest {
    Name: string;
    ValueKey?: string;
    UnitLabel?: string;
    DimensionKeys?: {
        [key: string]: string | undefined;
    };
    EventPattern?: string;
    Namespace?: string;
}
export declare const MetricDefinitionRequest: S.Schema<MetricDefinitionRequest>;
export type MetricDefinitionsRequest = MetricDefinitionRequest[];
export declare const MetricDefinitionsRequest: S.$Array<S.Schema<MetricDefinitionRequest>>;
export interface BatchCreateRumMetricDefinitionsRequest {
    AppMonitorName: string;
    Destination: string;
    DestinationArn?: string;
    MetricDefinitions: MetricDefinitionRequest[];
}
export declare const BatchCreateRumMetricDefinitionsRequest: S.Schema<BatchCreateRumMetricDefinitionsRequest>;
export interface BatchCreateRumMetricDefinitionsError_ {
    MetricDefinition: MetricDefinitionRequest;
    ErrorCode: string;
    ErrorMessage: string;
}
export declare const BatchCreateRumMetricDefinitionsError_: S.Schema<BatchCreateRumMetricDefinitionsError_>;
export type BatchCreateRumMetricDefinitionsErrors = BatchCreateRumMetricDefinitionsError_[];
export declare const BatchCreateRumMetricDefinitionsErrors: S.$Array<S.Schema<BatchCreateRumMetricDefinitionsError_>>;
export interface MetricDefinition {
    MetricDefinitionId: string;
    Name: string;
    ValueKey?: string;
    UnitLabel?: string;
    DimensionKeys?: {
        [key: string]: string | undefined;
    };
    EventPattern?: string;
    Namespace?: string;
}
export declare const MetricDefinition: S.Schema<MetricDefinition>;
export type MetricDefinitions = MetricDefinition[];
export declare const MetricDefinitions: S.$Array<S.Schema<MetricDefinition>>;
export interface BatchCreateRumMetricDefinitionsResponse {
    Errors: BatchCreateRumMetricDefinitionsError_[];
    MetricDefinitions?: MetricDefinition[];
}
export declare const BatchCreateRumMetricDefinitionsResponse: S.Schema<BatchCreateRumMetricDefinitionsResponse>;
export type MetricDefinitionIds = string[];
export declare const MetricDefinitionIds: S.$Array<S.String>;
export interface BatchDeleteRumMetricDefinitionsRequest {
    AppMonitorName: string;
    Destination: string;
    DestinationArn?: string;
    MetricDefinitionIds: string[];
}
export declare const BatchDeleteRumMetricDefinitionsRequest: S.Schema<BatchDeleteRumMetricDefinitionsRequest>;
export interface BatchDeleteRumMetricDefinitionsError_ {
    MetricDefinitionId: string;
    ErrorCode: string;
    ErrorMessage: string;
}
export declare const BatchDeleteRumMetricDefinitionsError_: S.Schema<BatchDeleteRumMetricDefinitionsError_>;
export type BatchDeleteRumMetricDefinitionsErrors = BatchDeleteRumMetricDefinitionsError_[];
export declare const BatchDeleteRumMetricDefinitionsErrors: S.$Array<S.Schema<BatchDeleteRumMetricDefinitionsError_>>;
export interface BatchDeleteRumMetricDefinitionsResponse {
    Errors: BatchDeleteRumMetricDefinitionsError_[];
    MetricDefinitionIds?: string[];
}
export declare const BatchDeleteRumMetricDefinitionsResponse: S.Schema<BatchDeleteRumMetricDefinitionsResponse>;
export interface BatchGetRumMetricDefinitionsRequest {
    AppMonitorName: string;
    Destination: string;
    DestinationArn?: string;
    MaxResults?: number;
    NextToken?: string;
}
export declare const BatchGetRumMetricDefinitionsRequest: S.Schema<BatchGetRumMetricDefinitionsRequest>;
export interface BatchGetRumMetricDefinitionsResponse {
    MetricDefinitions?: MetricDefinition[];
    NextToken?: string;
}
export declare const BatchGetRumMetricDefinitionsResponse: S.Schema<BatchGetRumMetricDefinitionsResponse>;
export interface CreateAppMonitorRequest {
    Name: string;
    Domain?: string;
    DomainList?: string[];
    Tags?: {
        [key: string]: string | undefined;
    };
    AppMonitorConfiguration?: AppMonitorConfiguration;
    CwLogEnabled?: boolean;
    CustomEvents?: CustomEvents;
    DeobfuscationConfiguration?: DeobfuscationConfiguration;
    Platform?: string;
}
export declare const CreateAppMonitorRequest: S.Schema<CreateAppMonitorRequest>;
export interface CreateAppMonitorResponse {
    Id?: string;
}
export declare const CreateAppMonitorResponse: S.Schema<CreateAppMonitorResponse>;
export interface DeleteResourcePolicyRequest {
    Name: string;
    PolicyRevisionId?: string;
}
export declare const DeleteResourcePolicyRequest: S.Schema<DeleteResourcePolicyRequest>;
export interface DeleteResourcePolicyResponse {
    PolicyRevisionId?: string;
}
export declare const DeleteResourcePolicyResponse: S.Schema<DeleteResourcePolicyResponse>;
export interface DeleteRumMetricsDestinationRequest {
    AppMonitorName: string;
    Destination: string;
    DestinationArn?: string;
}
export declare const DeleteRumMetricsDestinationRequest: S.Schema<DeleteRumMetricsDestinationRequest>;
export interface DeleteRumMetricsDestinationResponse {
}
export declare const DeleteRumMetricsDestinationResponse: S.Schema<DeleteRumMetricsDestinationResponse>;
export interface TimeRange {
    After: number;
    Before?: number;
}
export declare const TimeRange: S.Schema<TimeRange>;
export type QueryFilterValueList = string[];
export declare const QueryFilterValueList: S.$Array<S.String>;
export interface QueryFilter {
    Name?: string;
    Values?: string[];
}
export declare const QueryFilter: S.Schema<QueryFilter>;
export type QueryFilters = QueryFilter[];
export declare const QueryFilters: S.$Array<S.Schema<QueryFilter>>;
export interface GetAppMonitorDataRequest {
    Name: string;
    TimeRange: TimeRange;
    Filters?: QueryFilter[];
    MaxResults?: number;
    NextToken?: string;
}
export declare const GetAppMonitorDataRequest: S.Schema<GetAppMonitorDataRequest>;
export type EventDataList = string[];
export declare const EventDataList: S.$Array<S.String>;
export interface GetAppMonitorDataResponse {
    Events?: string[];
    NextToken?: string;
}
export declare const GetAppMonitorDataResponse: S.Schema<GetAppMonitorDataResponse>;
export interface GetResourcePolicyRequest {
    Name: string;
}
export declare const GetResourcePolicyRequest: S.Schema<GetResourcePolicyRequest>;
export interface GetResourcePolicyResponse {
    PolicyDocument?: string;
    PolicyRevisionId?: string;
}
export declare const GetResourcePolicyResponse: S.Schema<GetResourcePolicyResponse>;
export interface ListRumMetricsDestinationsRequest {
    AppMonitorName: string;
    MaxResults?: number;
    NextToken?: string;
}
export declare const ListRumMetricsDestinationsRequest: S.Schema<ListRumMetricsDestinationsRequest>;
export interface MetricDestinationSummary {
    Destination?: string;
    DestinationArn?: string;
    IamRoleArn?: string;
}
export declare const MetricDestinationSummary: S.Schema<MetricDestinationSummary>;
export type MetricDestinationSummaryList = MetricDestinationSummary[];
export declare const MetricDestinationSummaryList: S.$Array<S.Schema<MetricDestinationSummary>>;
export interface ListRumMetricsDestinationsResponse {
    Destinations?: MetricDestinationSummary[];
    NextToken?: string;
}
export declare const ListRumMetricsDestinationsResponse: S.Schema<ListRumMetricsDestinationsResponse>;
export interface PutResourcePolicyRequest {
    Name: string;
    PolicyDocument: string;
    PolicyRevisionId?: string;
}
export declare const PutResourcePolicyRequest: S.Schema<PutResourcePolicyRequest>;
export interface PutResourcePolicyResponse {
    PolicyDocument?: string;
    PolicyRevisionId?: string;
}
export declare const PutResourcePolicyResponse: S.Schema<PutResourcePolicyResponse>;
export interface PutRumMetricsDestinationRequest {
    AppMonitorName: string;
    Destination: string;
    DestinationArn?: string;
    IamRoleArn?: string;
}
export declare const PutRumMetricsDestinationRequest: S.Schema<PutRumMetricsDestinationRequest>;
export interface PutRumMetricsDestinationResponse {
}
export declare const PutRumMetricsDestinationResponse: S.Schema<PutRumMetricsDestinationResponse>;
export interface UpdateRumMetricDefinitionRequest {
    AppMonitorName: string;
    Destination: string;
    DestinationArn?: string;
    MetricDefinition: MetricDefinitionRequest;
    MetricDefinitionId: string;
}
export declare const UpdateRumMetricDefinitionRequest: S.Schema<UpdateRumMetricDefinitionRequest>;
export interface UpdateRumMetricDefinitionResponse {
}
export declare const UpdateRumMetricDefinitionResponse: S.Schema<UpdateRumMetricDefinitionResponse>;
declare const InternalServerException_base: S.Class<InternalServerException, S.TaggedStruct<"InternalServerException", {
    readonly message: S.String;
    readonly retryAfterSeconds: S.optional<S.Number>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ServerError: true;
    };
}) & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        RetryableError: true;
    };
});
export declare class InternalServerException extends InternalServerException_base {
}
declare const ResourceNotFoundException_base: S.Class<ResourceNotFoundException, S.TaggedStruct<"ResourceNotFoundException", {
    readonly message: S.String;
    readonly resourceName: S.String;
    readonly resourceType: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class ResourceNotFoundException extends ResourceNotFoundException_base {
}
declare const ValidationException_base: S.Class<ValidationException, S.TaggedStruct<"ValidationException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class ValidationException extends ValidationException_base {
}
declare const AccessDeniedException_base: S.Class<AccessDeniedException, S.TaggedStruct<"AccessDeniedException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        AuthError: true;
    };
});
export declare class AccessDeniedException extends AccessDeniedException_base {
}
declare const ThrottlingException_base: S.Class<ThrottlingException, S.TaggedStruct<"ThrottlingException", {
    readonly message: S.String;
    readonly serviceCode: S.optional<S.String>;
    readonly quotaCode: S.optional<S.String>;
    readonly retryAfterSeconds: S.optional<S.Number>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ThrottlingError: true;
    };
}) & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        RetryableError: true;
    };
});
export declare class ThrottlingException extends ThrottlingException_base {
}
declare const ConflictException_base: S.Class<ConflictException, S.TaggedStruct<"ConflictException", {
    readonly message: S.String;
    readonly resourceName: S.String;
    readonly resourceType: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ConflictError: true;
    };
});
export declare class ConflictException extends ConflictException_base {
}
declare const ServiceQuotaExceededException_base: S.Class<ServiceQuotaExceededException, S.TaggedStruct<"ServiceQuotaExceededException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        QuotaError: true;
    };
});
export declare class ServiceQuotaExceededException extends ServiceQuotaExceededException_base {
}
declare const InvalidPolicyRevisionIdException_base: S.Class<InvalidPolicyRevisionIdException, S.TaggedStruct<"InvalidPolicyRevisionIdException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class InvalidPolicyRevisionIdException extends InvalidPolicyRevisionIdException_base {
}
declare const PolicyNotFoundException_base: S.Class<PolicyNotFoundException, S.TaggedStruct<"PolicyNotFoundException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class PolicyNotFoundException extends PolicyNotFoundException_base {
}
declare const MalformedPolicyDocumentException_base: S.Class<MalformedPolicyDocumentException, S.TaggedStruct<"MalformedPolicyDocumentException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class MalformedPolicyDocumentException extends MalformedPolicyDocumentException_base {
}
declare const PolicySizeLimitExceededException_base: S.Class<PolicySizeLimitExceededException, S.TaggedStruct<"PolicySizeLimitExceededException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class PolicySizeLimitExceededException extends PolicySizeLimitExceededException_base {
}
export type ListTagsForResourceError = InternalServerException | ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Displays the tags associated with a CloudWatch RUM resource.
 */
export declare const listTagsForResource: API.OperationMethod<ListTagsForResourceRequest, ListTagsForResourceResponse, ListTagsForResourceError, Credentials | Region | HttpClient.HttpClient>;
export type PutRumEventsError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Sends telemetry events about your application performance and user behavior to CloudWatch RUM. The code snippet that RUM generates for you to add to your application includes `PutRumEvents` operations to send this data to RUM.
 *
 * Each `PutRumEvents` operation can send a batch of events from one user session.
 */
export declare const putRumEvents: API.OperationMethod<PutRumEventsRequest, PutRumEventsResponse, PutRumEventsError, Credentials | Region | HttpClient.HttpClient>;
export type TagResourceError = InternalServerException | ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Assigns one or more tags (key-value pairs) to the specified CloudWatch RUM resource. Currently, the only resources that can be tagged app monitors.
 *
 * Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.
 *
 * Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.
 *
 * You can use the `TagResource` action with a resource that already has tags. If you specify a new tag key for the resource, this tag is appended to the list of tags associated with the alarm. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag.
 *
 * You can associate as many as 50 tags with a resource.
 *
 * For more information, see Tagging Amazon Web Services resources.
 */
export declare const tagResource: API.OperationMethod<TagResourceRequest, TagResourceResponse, TagResourceError, Credentials | Region | HttpClient.HttpClient>;
export type UntagResourceError = InternalServerException | ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Removes one or more tags from the specified resource.
 */
export declare const untagResource: API.OperationMethod<UntagResourceRequest, UntagResourceResponse, UntagResourceError, Credentials | Region | HttpClient.HttpClient>;
export type GetAppMonitorError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Retrieves the complete configuration information for one app monitor.
 */
export declare const getAppMonitor: API.OperationMethod<GetAppMonitorRequest, GetAppMonitorResponse, GetAppMonitorError, Credentials | Region | HttpClient.HttpClient>;
export type UpdateAppMonitorError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Updates the configuration of an existing app monitor. When you use this operation, only the parts of the app monitor configuration that you specify in this operation are changed. For any parameters that you omit, the existing values are kept.
 *
 * You can't use this operation to change the tags of an existing app monitor. To change the tags of an existing app monitor, use TagResource.
 *
 * To create a new app monitor, use CreateAppMonitor.
 *
 * After you update an app monitor, sign in to the CloudWatch RUM console to get the updated JavaScript code snippet to add to your web application. For more information, see How do I find a code snippet that I've already generated?
 */
export declare const updateAppMonitor: API.OperationMethod<UpdateAppMonitorRequest, UpdateAppMonitorResponse, UpdateAppMonitorError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteAppMonitorError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Deletes an existing app monitor. This immediately stops the collection of data.
 */
export declare const deleteAppMonitor: API.OperationMethod<DeleteAppMonitorRequest, DeleteAppMonitorResponse, DeleteAppMonitorError, Credentials | Region | HttpClient.HttpClient>;
export type ListAppMonitorsError = AccessDeniedException | InternalServerException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Returns a list of the Amazon CloudWatch RUM app monitors in the account.
 */
export declare const listAppMonitors: API.OperationMethod<ListAppMonitorsRequest, ListAppMonitorsResponse, ListAppMonitorsError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListAppMonitorsRequest) => stream.Stream<ListAppMonitorsResponse, ListAppMonitorsError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListAppMonitorsRequest) => stream.Stream<AppMonitorSummary, ListAppMonitorsError, Credentials | Region | HttpClient.HttpClient>;
};
export type BatchCreateRumMetricDefinitionsError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ServiceQuotaExceededException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Specifies the extended metrics and custom metrics that you want a CloudWatch RUM app monitor to send to a destination. Valid destinations include CloudWatch and Evidently.
 *
 * By default, RUM app monitors send some metrics to CloudWatch. These default metrics are listed in CloudWatch metrics that you can collect with CloudWatch RUM.
 *
 * In addition to these default metrics, you can choose to send extended metrics, custom metrics, or both.
 *
 * - Extended metrics let you send metrics with additional dimensions that aren't included in the default metrics. You can also send extended metrics to both Evidently and CloudWatch. The valid dimension names for the additional dimensions for extended metrics are `BrowserName`, `CountryCode`, `DeviceType`, `FileType`, `OSName`, and `PageId`. For more information, see Extended metrics that you can send to CloudWatch and CloudWatch Evidently.
 *
 * - Custom metrics are metrics that you define. You can send custom metrics to CloudWatch. CloudWatch Evidently, or both. With custom metrics, you can use any metric name and namespace. To derive the metrics, you can use any custom events, built-in events, custom attributes, or default attributes.
 *
 * You can't send custom metrics to the `AWS/RUM` namespace. You must send custom metrics to a custom namespace that you define. The namespace that you use can't start with `AWS/`. CloudWatch RUM prepends `RUM/CustomMetrics/` to the custom namespace that you define, so the final namespace for your metrics in CloudWatch is `RUM/CustomMetrics/*your-custom-namespace* `.
 *
 * The maximum number of metric definitions that you can specify in one `BatchCreateRumMetricDefinitions` operation is 200.
 *
 * The maximum number of metric definitions that one destination can contain is 2000.
 *
 * Extended metrics sent to CloudWatch and RUM custom metrics are charged as CloudWatch custom metrics. Each combination of additional dimension name and dimension value counts as a custom metric. For more information, see Amazon CloudWatch Pricing.
 *
 * You must have already created a destination for the metrics before you send them. For more information, see PutRumMetricsDestination.
 *
 * If some metric definitions specified in a `BatchCreateRumMetricDefinitions` operations are not valid, those metric definitions fail and return errors, but all valid metric definitions in the same operation still succeed.
 */
export declare const batchCreateRumMetricDefinitions: API.OperationMethod<BatchCreateRumMetricDefinitionsRequest, BatchCreateRumMetricDefinitionsResponse, BatchCreateRumMetricDefinitionsError, Credentials | Region | HttpClient.HttpClient>;
export type BatchDeleteRumMetricDefinitionsError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Removes the specified metrics from being sent to an extended metrics destination.
 *
 * If some metric definition IDs specified in a `BatchDeleteRumMetricDefinitions` operations are not valid, those metric definitions fail and return errors, but all valid metric definition IDs in the same operation are still deleted.
 *
 * The maximum number of metric definitions that you can specify in one `BatchDeleteRumMetricDefinitions` operation is 200.
 */
export declare const batchDeleteRumMetricDefinitions: API.OperationMethod<BatchDeleteRumMetricDefinitionsRequest, BatchDeleteRumMetricDefinitionsResponse, BatchDeleteRumMetricDefinitionsError, Credentials | Region | HttpClient.HttpClient>;
export type BatchGetRumMetricDefinitionsError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Retrieves the list of metrics and dimensions that a RUM app monitor is sending to a single destination.
 */
export declare const batchGetRumMetricDefinitions: API.OperationMethod<BatchGetRumMetricDefinitionsRequest, BatchGetRumMetricDefinitionsResponse, BatchGetRumMetricDefinitionsError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: BatchGetRumMetricDefinitionsRequest) => stream.Stream<BatchGetRumMetricDefinitionsResponse, BatchGetRumMetricDefinitionsError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: BatchGetRumMetricDefinitionsRequest) => stream.Stream<MetricDefinition, BatchGetRumMetricDefinitionsError, Credentials | Region | HttpClient.HttpClient>;
};
export type CreateAppMonitorError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ServiceQuotaExceededException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Creates a Amazon CloudWatch RUM app monitor, which collects telemetry data from your application and sends that data to RUM. The data includes performance and reliability information such as page load time, client-side errors, and user behavior.
 *
 * You use this operation only to create a new app monitor. To update an existing app monitor, use UpdateAppMonitor instead.
 *
 * After you create an app monitor, sign in to the CloudWatch RUM console to get the JavaScript code snippet to add to your web application. For more information, see How do I find a code snippet that I've already generated?
 */
export declare const createAppMonitor: API.OperationMethod<CreateAppMonitorRequest, CreateAppMonitorResponse, CreateAppMonitorError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteResourcePolicyError = AccessDeniedException | ConflictException | InternalServerException | InvalidPolicyRevisionIdException | PolicyNotFoundException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Removes the association of a resource-based policy from an app monitor.
 */
export declare const deleteResourcePolicy: API.OperationMethod<DeleteResourcePolicyRequest, DeleteResourcePolicyResponse, DeleteResourcePolicyError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteRumMetricsDestinationError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Deletes a destination for CloudWatch RUM extended metrics, so that the specified app monitor stops sending extended metrics to that destination.
 */
export declare const deleteRumMetricsDestination: API.OperationMethod<DeleteRumMetricsDestinationRequest, DeleteRumMetricsDestinationResponse, DeleteRumMetricsDestinationError, Credentials | Region | HttpClient.HttpClient>;
export type GetAppMonitorDataError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Retrieves the raw performance events that RUM has collected from your web application, so that you can do your own processing or analysis of this data.
 */
export declare const getAppMonitorData: API.OperationMethod<GetAppMonitorDataRequest, GetAppMonitorDataResponse, GetAppMonitorDataError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: GetAppMonitorDataRequest) => stream.Stream<GetAppMonitorDataResponse, GetAppMonitorDataError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: GetAppMonitorDataRequest) => stream.Stream<EventData, GetAppMonitorDataError, Credentials | Region | HttpClient.HttpClient>;
};
export type GetResourcePolicyError = AccessDeniedException | ConflictException | InternalServerException | PolicyNotFoundException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Use this operation to retrieve information about a resource-based policy that is attached to an app monitor.
 */
export declare const getResourcePolicy: API.OperationMethod<GetResourcePolicyRequest, GetResourcePolicyResponse, GetResourcePolicyError, Credentials | Region | HttpClient.HttpClient>;
export type ListRumMetricsDestinationsError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Returns a list of destinations that you have created to receive RUM extended metrics, for the specified app monitor.
 *
 * For more information about extended metrics, see AddRumMetrics.
 */
export declare const listRumMetricsDestinations: API.OperationMethod<ListRumMetricsDestinationsRequest, ListRumMetricsDestinationsResponse, ListRumMetricsDestinationsError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListRumMetricsDestinationsRequest) => stream.Stream<ListRumMetricsDestinationsResponse, ListRumMetricsDestinationsError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListRumMetricsDestinationsRequest) => stream.Stream<MetricDestinationSummary, ListRumMetricsDestinationsError, Credentials | Region | HttpClient.HttpClient>;
};
export type PutResourcePolicyError = AccessDeniedException | ConflictException | InternalServerException | InvalidPolicyRevisionIdException | MalformedPolicyDocumentException | PolicySizeLimitExceededException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Use this operation to assign a resource-based policy to a CloudWatch RUM app monitor to control access to it. Each app monitor can have one resource-based policy. The maximum size of the policy is 4 KB. To learn more about using resource policies with RUM, see Using resource-based policies with CloudWatch RUM.
 */
export declare const putResourcePolicy: API.OperationMethod<PutResourcePolicyRequest, PutResourcePolicyResponse, PutResourcePolicyError, Credentials | Region | HttpClient.HttpClient>;
export type PutRumMetricsDestinationError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Creates or updates a destination to receive extended metrics from CloudWatch RUM. You can send extended metrics to CloudWatch or to a CloudWatch Evidently experiment.
 *
 * For more information about extended metrics, see BatchCreateRumMetricDefinitions.
 */
export declare const putRumMetricsDestination: API.OperationMethod<PutRumMetricsDestinationRequest, PutRumMetricsDestinationResponse, PutRumMetricsDestinationError, Credentials | Region | HttpClient.HttpClient>;
export type UpdateRumMetricDefinitionError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ServiceQuotaExceededException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Modifies one existing metric definition for CloudWatch RUM extended metrics. For more information about extended metrics, see BatchCreateRumMetricsDefinitions.
 */
export declare const updateRumMetricDefinition: API.OperationMethod<UpdateRumMetricDefinitionRequest, UpdateRumMetricDefinitionResponse, UpdateRumMetricDefinitionError, Credentials | Region | HttpClient.HttpClient>;
export {};
//# sourceMappingURL=rum.d.ts.map