export interface InsightsConfiguration {
    /** Set the InsightsEnabled value to true to enable insights or false to disable insights. */
    InsightsEnabled?: boolean;
    /** Set the NotificationsEnabled value to true to enable insights notifications. Notifications can only be enabled on a group with InsightsEnabled set to true. */
    NotificationsEnabled?: boolean;
}
export interface Tag {
    /** A tag key, such as Stage or Name. A tag key cannot be empty. The key can be a maximum of 128 characters, and can contain only Unicode letters, numbers, or separators, or the following special characte */
    Key: string;
    /** An optional tag value, such as Production or test-only. The value can be a maximum of 255 characters, and contain only Unicode letters, numbers, or separators, or the following special characters: + - */
    Value: string;
}
export interface SamplingRateBoost {
    /** Defines max temporary sampling rate to apply when a boost is triggered. Calculated boost rate by X-Ray will be less than or equal to this max rate. */
    MaxRate: number;
    /** Sets the time window (in minutes) in which only one sampling rate boost can be triggered. After a boost occurs, no further boosts are allowed until the next window. */
    CooldownWindowMinutes: number;
}
export interface SamplingRule {
    /** The name of the sampling rule. Specify a rule by either name or ARN, but not both. */
    RuleName?: string;
    /** The ARN of the sampling rule. Specify a rule by either name or ARN, but not both. */
    RuleARN?: string;
    /** Matches the ARN of the Amazon Web Services resource on which the service runs. */
    ResourceARN: string;
    /** The priority of the sampling rule. */
    Priority: number;
    /** The percentage of matching requests to instrument, after the reservoir is exhausted. */
    FixedRate: number;
    /** A fixed number of matching requests to instrument per second, prior to applying the fixed rate. The reservoir is not used directly by services, but applies to all services using the rule collectively. */
    ReservoirSize: number;
    /** Matches the name that the service uses to identify itself in segments. */
    ServiceName: string;
    /** Matches the origin that the service uses to identify its type in segments. */
    ServiceType: string;
    /** Matches the hostname from a request URL. */
    Host: string;
    /** Matches the HTTP method of a request. */
    HTTPMethod: string;
    /** Matches the path from a request URL. */
    URLPath: string;
    /** The version of the sampling rule format (1). */
    Version: number;
    /** Matches attributes derived from the request. */
    Attributes?: Record<string, string>;
    /** Specifies the multiplier applied to the base sampling rate. This boost allows you to temporarily increase sampling without changing the rule's configuration. */
    SamplingRateBoost?: SamplingRateBoost;
}
export interface SamplingStatisticsDocument {
    /** The name of the sampling rule. */
    RuleName: string;
    /** A unique identifier for the service in hexadecimal. */
    ClientID: string;
    /** The current time. */
    Timestamp: string;
    /** The number of requests that matched the rule. */
    RequestCount: number;
    /** The number of requests recorded. */
    SampledCount: number;
    /** The number of requests recorded with borrowed reservoir quota. */
    BorrowCount?: number;
}
export interface SamplingBoostStatisticsDocument {
    /** The name of the sampling rule. */
    RuleName: string;
    /** Matches the name that the service uses to identify itself in segments. */
    ServiceName: string;
    /** The current time. */
    Timestamp: string;
    /** The number of requests with anomaly. */
    AnomalyCount: number;
    /** The number of requests that associated to the rule. */
    TotalCount: number;
    /** The number of requests with anomaly recorded. */
    SampledAnomalyCount: number;
}
export interface SamplingStrategy {
    /** The name of a sampling rule. */
    Name?: 'PartialScan' | 'FixedRate';
    /** The value of a sampling rule. */
    Value?: number;
}
export interface TelemetryRecord {
    Timestamp: string;
    SegmentsReceivedCount?: number;
    SegmentsSentCount?: number;
    SegmentsSpilloverCount?: number;
    SegmentsRejectedCount?: number;
    BackendConnectionErrors?: any;
}
export interface ProbabilisticRuleValueUpdate {
    /** Configured sampling percentage of traceIds. Note that sampling can be subject to limits to ensure completeness of data. */
    DesiredSamplingPercentage: number;
}
export interface SamplingRuleUpdate {
    /** The name of the sampling rule. Specify a rule by either name or ARN, but not both. */
    RuleName?: string;
    /** The ARN of the sampling rule. Specify a rule by either name or ARN, but not both. */
    RuleARN?: string;
    /** Matches the ARN of the Amazon Web Services resource on which the service runs. */
    ResourceARN?: string;
    /** The priority of the sampling rule. */
    Priority?: number;
    /** The percentage of matching requests to instrument, after the reservoir is exhausted. */
    FixedRate?: number;
    /** A fixed number of matching requests to instrument per second, prior to applying the fixed rate. The reservoir is not used directly by services, but applies to all services using the rule collectively. */
    ReservoirSize?: number;
    /** Matches the hostname from a request URL. */
    Host?: string;
    /** Matches the name that the service uses to identify itself in segments. */
    ServiceName?: string;
    /** Matches the origin that the service uses to identify its type in segments. */
    ServiceType?: string;
    /** Matches the HTTP method of a request. */
    HTTPMethod?: string;
    /** Matches the path from a request URL. */
    URLPath?: string;
    /** Matches attributes derived from the request. */
    Attributes?: Record<string, string>;
    /** Specifies the multiplier applied to the base sampling rate. This boost allows you to temporarily increase sampling without changing the rule's configuration. */
    SamplingRateBoost?: SamplingRateBoost;
}
export interface BatchGetTracesInput {
    /** Specify the trace IDs of requests for which to retrieve segments. */
    TraceIds: string[];
    /** Pagination token. */
    NextToken?: string;
}
export interface CancelTraceRetrievalInput {
    /** Retrieval token. */
    RetrievalToken: string;
}
export interface CreateGroupInput {
    /** The case-sensitive name of the new group. Default is a reserved name and names must be unique. */
    GroupName: string;
    /** The filter expression defining criteria by which to group traces. */
    FilterExpression?: string;
    /** The structure containing configurations related to insights. The InsightsEnabled boolean can be set to true to enable insights for the new group or false to disable insights for the new group. The Not */
    InsightsConfiguration?: InsightsConfiguration;
    /** A map that contains one or more tag keys and tag values to attach to an X-Ray group. For more information about ways to use tags, see Tagging Amazon Web Services resources in the Amazon Web Services G */
    Tags?: Tag[];
}
export interface CreateSamplingRuleInput {
    /** The rule definition. */
    SamplingRule: SamplingRule;
    /** A map that contains one or more tag keys and tag values to attach to an X-Ray sampling rule. For more information about ways to use tags, see Tagging Amazon Web Services resources in the Amazon Web Se */
    Tags?: Tag[];
}
export interface DeleteGroupInput {
    /** The ARN of the group that was generated on creation. */
    GroupARN?: string;
    /** The case-sensitive name of the group. */
    GroupName?: string;
}
export interface DeleteResourcePolicyInput {
    /** The name of the resource policy to delete. */
    PolicyName: string;
    /** Specifies a specific policy revision to delete. Provide a PolicyRevisionId to ensure an atomic delete operation. If the provided revision id does not match the latest policy revision id, an InvalidPol */
    PolicyRevisionId?: string;
}
export interface DeleteSamplingRuleInput {
    /** The ARN of the sampling rule. Specify a rule by either name or ARN, but not both. */
    RuleARN?: string;
    /** The name of the sampling rule. Specify a rule by either name or ARN, but not both. */
    RuleName?: string;
}
export interface GetGroupInput {
    /** The ARN of the group that was generated on creation. */
    GroupARN?: string;
    /** The case-sensitive name of the group. */
    GroupName?: string;
}
export interface GetGroupsInput {
    /** Pagination token. */
    NextToken?: string;
}
export interface GetIndexingRulesInput {
    /** Specify the pagination token returned by a previous request to retrieve the next page of indexes. */
    NextToken?: string;
}
export interface GetInsightInput {
    /** The insight's unique identifier. Use the GetInsightSummaries action to retrieve an InsightId. */
    InsightId: string;
}
export interface GetInsightEventsInput {
    /** The insight's unique identifier. Use the GetInsightSummaries action to retrieve an InsightId. */
    InsightId: string;
    /** Used to retrieve at most the specified value of events. */
    MaxResults?: number;
    /** Specify the pagination token returned by a previous request to retrieve the next page of events. */
    NextToken?: string;
}
export interface GetInsightImpactGraphInput {
    /** The estimated end time of the insight, in Unix time seconds. The EndTime is exclusive of the value provided. The time range between the start time and end time can't be more than six hours. */
    EndTime: string;
    /** The insight's unique identifier. Use the GetInsightSummaries action to retrieve an InsightId. */
    InsightId: string;
    /** The estimated start time of the insight, in Unix time seconds. The StartTime is inclusive of the value provided and can't be more than 30 days old. */
    StartTime: string;
    /** Specify the pagination token returned by a previous request to retrieve the next page of results. */
    NextToken?: string;
}
export interface GetInsightSummariesInput {
    /** The end of the time frame in which the insights ended. The end time can't be more than 30 days old. */
    EndTime: string;
    /** The beginning of the time frame in which the insights started. The start time can't be more than 30 days old. */
    StartTime: string;
    /** The Amazon Resource Name (ARN) of the group. Required if the GroupName isn't provided. */
    GroupARN?: string;
    /** The name of the group. Required if the GroupARN isn't provided. */
    GroupName?: string;
    /** The maximum number of results to display. */
    MaxResults?: number;
    /** Pagination token. */
    NextToken?: string;
    /** The list of insight states. */
    States?: 'ACTIVE' | 'CLOSED'[];
}
export interface GetRetrievedTracesGraphInput {
    /** Retrieval token. */
    RetrievalToken: string;
    /** Specify the pagination token returned by a previous request to retrieve the next page of indexes. */
    NextToken?: string;
}
export interface GetSamplingRulesInput {
    /** Pagination token. */
    NextToken?: string;
}
export interface GetSamplingStatisticSummariesInput {
    /** Pagination token. */
    NextToken?: string;
}
export interface GetSamplingTargetsInput {
    /** Information about rules that the service is using to sample requests. */
    SamplingStatisticsDocuments: SamplingStatisticsDocument[];
    /** Information about rules that the service is using to boost sampling rate. */
    SamplingBoostStatisticsDocuments?: SamplingBoostStatisticsDocument[];
}
export interface GetServiceGraphInput {
    /** The end of the timeframe for which to generate a graph. */
    EndTime: string;
    /** The start of the time frame for which to generate a graph. */
    StartTime: string;
    /** The Amazon Resource Name (ARN) of a group based on which you want to generate a graph. */
    GroupARN?: string;
    /** The name of a group based on which you want to generate a graph. */
    GroupName?: string;
    /** Pagination token. */
    NextToken?: string;
}
export interface GetTimeSeriesServiceStatisticsInput {
    /** The end of the time frame for which to aggregate statistics. */
    EndTime: string;
    /** The start of the time frame for which to aggregate statistics. */
    StartTime: string;
    /** A filter expression defining entities that will be aggregated for statistics. Supports ID, service, and edge functions. If no selector expression is specified, edge statistics are returned. */
    EntitySelectorExpression?: string;
    /** The forecasted high and low fault count values. Forecast enabled requests require the EntitySelectorExpression ID be provided. */
    ForecastStatistics?: boolean;
    /** The Amazon Resource Name (ARN) of the group for which to pull statistics from. */
    GroupARN?: string;
    /** The case-sensitive name of the group for which to pull statistics from. */
    GroupName?: string;
    /** Pagination token. */
    NextToken?: string;
    /** Aggregation period in seconds. */
    Period?: number;
}
export interface GetTraceGraphInput {
    /** Trace IDs of requests for which to generate a service graph. */
    TraceIds: string[];
    /** Pagination token. */
    NextToken?: string;
}
export interface GetTraceSummariesInput {
    /** The end of the time frame for which to retrieve traces. */
    EndTime: string;
    /** The start of the time frame for which to retrieve traces. */
    StartTime: string;
    /** Specify a filter expression to retrieve trace summaries for services or requests that meet certain requirements. */
    FilterExpression?: string;
    /** Specify the pagination token returned by a previous request to retrieve the next page of results. */
    NextToken?: string;
    /** Set to true to get summaries for only a subset of available traces. */
    Sampling?: boolean;
    /** A parameter to indicate whether to enable sampling on trace summaries. Input parameters are Name and Value. */
    SamplingStrategy?: SamplingStrategy;
    /** Query trace summaries by TraceId (trace start time), Event (trace update time), or Service (trace segment end time). */
    TimeRangeType?: 'TraceId' | 'Event' | 'Service';
}
export interface ListResourcePoliciesInput {
    /** Not currently supported. */
    NextToken?: string;
}
export interface ListRetrievedTracesInput {
    /** Retrieval token. */
    RetrievalToken: string;
    /** Specify the pagination token returned by a previous request to retrieve the next page of indexes. */
    NextToken?: string;
    /** Format of the requested traces. */
    TraceFormat?: 'XRAY' | 'OTEL';
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Number (ARN) of an X-Ray group or sampling rule. */
    ResourceARN: string;
    /** A pagination token. If multiple pages of results are returned, use the NextToken value returned with the current page of results as the value of this parameter to get the next page of results. */
    NextToken?: string;
}
export interface PutEncryptionConfigInput {
    /** The type of encryption. Set to KMS to use your own key for encryption. Set to NONE for default encryption. */
    Type: 'NONE' | 'KMS';
    /** An Amazon Web Services KMS key in one of the following formats: Alias - The name of the key. For example, alias/MyKey. Key ID - The KMS key ID of the key. For example, ae4aa6d49-a4d8-9df9-a475-4ff6d78 */
    KeyId?: string;
}
export interface PutResourcePolicyInput {
    /** The resource policy document, which can be up to 5kb in size. */
    PolicyDocument: string;
    /** The name of the resource policy. Must be unique within a specific Amazon Web Services account. */
    PolicyName: string;
    /** A flag to indicate whether to bypass the resource policy lockout safety check. Setting this value to true increases the risk that the policy becomes unmanageable. Do not set this value to true indiscr */
    BypassPolicyLockoutCheck?: boolean;
    /** Specifies a specific policy revision, to ensure an atomic create operation. By default the resource policy is created if it does not exist, or updated with an incremented revision id. The revision id  */
    PolicyRevisionId?: string;
}
export interface PutTelemetryRecordsInput {
    TelemetryRecords: TelemetryRecord[];
    EC2InstanceId?: string;
    Hostname?: string;
    ResourceARN?: string;
}
export interface PutTraceSegmentsInput {
    /** A string containing a JSON document defining one or more segments or subsegments. */
    TraceSegmentDocuments: string[];
}
export interface StartTraceRetrievalInput {
    /** The end of the time range to retrieve traces. The range is inclusive, so the specified end time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:00:00 */
    EndTime: string;
    /** The start of the time range to retrieve traces. The range is inclusive, so the specified start time is included in the query. Specified as epoch time, the number of seconds since January 1, 1970, 00:0 */
    StartTime: string;
    /** Specify the trace IDs of the traces to be retrieved. */
    TraceIds: string[];
}
export interface TagResourceInput {
    /** The Amazon Resource Number (ARN) of an X-Ray group or sampling rule. */
    ResourceARN: string;
    /** A map that contains one or more tag keys and tag values to attach to an X-Ray group or sampling rule. For more information about ways to use tags, see Tagging Amazon Web Services resources in the Amaz */
    Tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Number (ARN) of an X-Ray group or sampling rule. */
    ResourceARN: string;
    /** Keys for one or more tags that you want to remove from an X-Ray group or sampling rule. */
    TagKeys: string[];
}
export interface UpdateGroupInput {
    /** The updated filter expression defining criteria by which to group traces. */
    FilterExpression?: string;
    /** The ARN that was generated upon creation. */
    GroupARN?: string;
    /** The case-sensitive name of the group. */
    GroupName?: string;
    /** The structure containing configurations related to insights. The InsightsEnabled boolean can be set to true to enable insights for the group or false to disable insights for the group. The Notificatio */
    InsightsConfiguration?: InsightsConfiguration;
}
export interface UpdateIndexingRuleInput {
    /** Name of the indexing rule to be updated. */
    Name: string;
    /** Rule configuration to be updated. */
    Rule: {
        Probabilistic?: ProbabilisticRuleValueUpdate;
    };
}
export interface UpdateSamplingRuleInput {
    /** The rule and fields to change. */
    SamplingRuleUpdate: SamplingRuleUpdate;
}
export interface UpdateTraceSegmentDestinationInput {
    /** The configured destination of trace segments. */
    Destination?: 'XRay' | 'CloudWatchLogs';
}
/** XRay service binding for Step Functions SDK integrations. */
export declare class XRay {
    constructor();
    batchGetTraces<T>(params: BatchGetTracesInput): Promise<T>;
    cancelTraceRetrieval<T>(params: CancelTraceRetrievalInput): Promise<T>;
    createGroup<T>(params: CreateGroupInput): Promise<T>;
    createSamplingRule<T>(params: CreateSamplingRuleInput): Promise<T>;
    deleteGroup<T>(params: DeleteGroupInput): Promise<T>;
    deleteResourcePolicy<T>(params: DeleteResourcePolicyInput): Promise<T>;
    deleteSamplingRule<T>(params: DeleteSamplingRuleInput): Promise<T>;
    getEncryptionConfig<T>(params: Record<string, any>): Promise<T>;
    getGroup<T>(params: GetGroupInput): Promise<T>;
    getGroups<T>(params: GetGroupsInput): Promise<T>;
    getIndexingRules<T>(params: GetIndexingRulesInput): Promise<T>;
    getInsight<T>(params: GetInsightInput): Promise<T>;
    getInsightEvents<T>(params: GetInsightEventsInput): Promise<T>;
    getInsightImpactGraph<T>(params: GetInsightImpactGraphInput): Promise<T>;
    getInsightSummaries<T>(params: GetInsightSummariesInput): Promise<T>;
    getRetrievedTracesGraph<T>(params: GetRetrievedTracesGraphInput): Promise<T>;
    getSamplingRules<T>(params: GetSamplingRulesInput): Promise<T>;
    getSamplingStatisticSummaries<T>(params: GetSamplingStatisticSummariesInput): Promise<T>;
    getSamplingTargets<T>(params: GetSamplingTargetsInput): Promise<T>;
    getServiceGraph<T>(params: GetServiceGraphInput): Promise<T>;
    getTimeSeriesServiceStatistics<T>(params: GetTimeSeriesServiceStatisticsInput): Promise<T>;
    getTraceGraph<T>(params: GetTraceGraphInput): Promise<T>;
    getTraceSegmentDestination<T>(params: Record<string, any>): Promise<T>;
    getTraceSummaries<T>(params: GetTraceSummariesInput): Promise<T>;
    listResourcePolicies<T>(params: ListResourcePoliciesInput): Promise<T>;
    listRetrievedTraces<T>(params: ListRetrievedTracesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    putEncryptionConfig<T>(params: PutEncryptionConfigInput): Promise<T>;
    putResourcePolicy<T>(params: PutResourcePolicyInput): Promise<T>;
    putTelemetryRecords<T>(params: PutTelemetryRecordsInput): Promise<T>;
    putTraceSegments<T>(params: PutTraceSegmentsInput): Promise<T>;
    startTraceRetrieval<T>(params: StartTraceRetrievalInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateGroup<T>(params: UpdateGroupInput): Promise<T>;
    updateIndexingRule<T>(params: UpdateIndexingRuleInput): Promise<T>;
    updateSamplingRule<T>(params: UpdateSamplingRuleInput): Promise<T>;
    updateTraceSegmentDestination<T>(params: UpdateTraceSegmentDestinationInput): Promise<T>;
}
//# sourceMappingURL=XRay.d.ts.map