export interface Channel {
    /** Unique identifier for each Channel in the notification configuration of a Profiling Group. A random UUID for channelId is used when adding a channel to the notification configuration if not specified  */
    id?: string;
    /** Unique arn of the resource to be used for notifications. We support a valid SNS topic arn as a channel uri. */
    uri: string;
    /** List of publishers for different type of events that may be detected in an application from the profile. Anomaly detection is the only event publisher in Profiler. */
    eventPublishers: any[];
}
export interface FrameMetric {
    /** Name of the method common across the multiple occurrences of a frame in an application profile. */
    frameName: string;
    /** A type of aggregation that specifies how a metric for a frame is analyzed. The supported value AggregatedRelativeTotalTime is an aggregation of the metric value for one frame that is calculated across */
    type: 'AggregatedRelativeTotalTime';
    /** List of application runtime thread states used to get the counts for a frame a derive a metric value. */
    threadStates: any[];
}
export interface AgentOrchestrationConfig {
    /** A Boolean that specifies whether the profiling agent collects profiling data or not. Set to true to enable profiling. */
    profilingEnabled: boolean;
}
/** The structure representing the AddNotificationChannelsRequest. */
export interface AddNotificationChannelsInput {
    /** One or 2 channels to report to when anomalies are detected. */
    channels: Channel[];
    /** The name of the profiling group that we are setting up notifications for. */
    profilingGroupName: string;
}
/** The structure representing the BatchGetFrameMetricDataRequest. */
export interface BatchGetFrameMetricDataInput {
    /** The name of the profiling group associated with the the frame metrics used to return the time series values. */
    profilingGroupName: string;
    /** The end time of the time period for the returned time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15: */
    endTime?: string;
    /** The details of the metrics that are used to request a time series of values. The metric includes the name of the frame, the aggregation type to calculate the metric value for the frame, and the thread */
    frameMetrics?: FrameMetric[];
    /** The duration of the frame metrics used to return the time series values. Specify using the ISO 8601 format. The maximum period duration is one day (PT24H or P1D). */
    period?: string;
    /** The start time of the time period for the frame metrics used to return the time series values. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 milliseco */
    startTime?: string;
    /** The requested resolution of time steps for the returned time series of values. If the requested target resolution is not available due to data not being retained we provide a best effort result by fal */
    targetResolution?: 'PT5M' | 'PT1H' | 'P1D';
}
/** The structure representing the configureAgentRequest. */
export interface ConfigureAgentInput {
    /** The name of the profiling group for which the configured agent is collecting profiling data. */
    profilingGroupName: string;
    /** A universally unique identifier (UUID) for a profiling instance. For example, if the profiling instance is an Amazon EC2 instance, it is the instance ID. If it is an AWS Fargate container, it is the c */
    fleetInstanceId?: string;
    /** Metadata captured about the compute platform the agent is running on. It includes information about sampling and reporting. The valid fields are: COMPUTE_PLATFORM - The compute platform on which the a */
    metadata?: Record<string, string>;
}
/** The structure representing the deleteProfilingGroupRequest. */
export interface DeleteProfilingGroupInput {
    /** The name of the profiling group to delete. */
    profilingGroupName: string;
}
/** The structure representing the describeProfilingGroupRequest. */
export interface DescribeProfilingGroupInput {
    /** The name of the profiling group to get information about. */
    profilingGroupName: string;
}
/** The structure representing the GetFindingsReportAccountSummaryRequest. */
export interface GetFindingsReportAccountSummaryInput {
    /** A Boolean value indicating whether to only return reports from daily profiles. If set to True, only analysis data from daily profiles is returned. If set to False, analysis data is returned from small */
    dailyReportsOnly?: boolean;
    /** The maximum number of results returned by GetFindingsReportAccountSummary in paginated output. When this parameter is used, GetFindingsReportAccountSummary only returns maxResults results in a single  */
    maxResults?: number;
    /** The nextToken value returned from a previous paginated GetFindingsReportAccountSummary request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from */
    nextToken?: string;
}
/** The structure representing the GetNotificationConfigurationRequest. */
export interface GetNotificationConfigurationInput {
    /** The name of the profiling group we want to get the notification configuration for. */
    profilingGroupName: string;
}
/** The structure representing the getPolicyRequest. */
export interface GetPolicyInput {
    /** The name of the profiling group. */
    profilingGroupName: string;
}
/** The structure representing the getProfileRequest. */
export interface GetProfileInput {
    /** The name of the profiling group to get. */
    profilingGroupName: string;
    /** The format of the returned profiling data. The format maps to the Accept and Content-Type headers of the HTTP request. You can specify one of the following: or the default . application/json — standar */
    accept?: string;
    /** The end time of the requested profile. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. If you specify endTime, then  */
    endTime?: string;
    /** The maximum depth of the stacks in the code that is represented in the aggregated profile. For example, if CodeGuru Profiler finds a method A, which calls method B, which calls method C, which calls m */
    maxDepth?: number;
    /** Used with startTime or endTime to specify the time range for the returned aggregated profile. Specify using the ISO 8601 format. For example, P1DT1H1M1S. To get the latest aggregated profile, specify  */
    period?: string;
    /** The start time of the profile to get. Specify using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 1:15:02 PM UTC. If you specify startTime, then */
    startTime?: string;
}
/** The structure representing the GetRecommendationsRequest. */
export interface GetRecommendationsInput {
    /** The start time of the profile to get analysis data about. You must specify startTime and endTime. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millis */
    endTime: string;
    /** The name of the profiling group to get analysis data about. */
    profilingGroupName: string;
    /** The end time of the profile to get analysis data about. You must specify startTime and endTime. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisec */
    startTime: string;
    /** The language used to provide analysis. Specify using a string that is one of the following BCP 47 language codes. de-DE - German, Germany en-GB - English, United Kingdom en-US - English, United States */
    locale?: string;
}
/** The structure representing the ListFindingsReportsRequest. */
export interface ListFindingsReportsInput {
    /** The end time of the profile to get analysis data about. You must specify startTime and endTime. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millisec */
    endTime: string;
    /** The name of the profiling group from which to search for analysis data. */
    profilingGroupName: string;
    /** The start time of the profile to get analysis data about. You must specify startTime and endTime. This is specified using the ISO 8601 format. For example, 2020-06-01T13:15:02.001Z represents 1 millis */
    startTime: string;
    /** A Boolean value indicating whether to only return reports from daily profiles. If set to True, only analysis data from daily profiles is returned. If set to False, analysis data is returned from small */
    dailyReportsOnly?: boolean;
    /** The maximum number of report results returned by ListFindingsReports in paginated output. When this parameter is used, ListFindingsReports only returns maxResults results in a single page along with a */
    maxResults?: number;
    /** The nextToken value returned from a previous paginated ListFindingsReportsRequest request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the  */
    nextToken?: string;
}
/** The structure representing the listProfileTimesRequest. */
export interface ListProfileTimesInput {
    /** The end time of the time range from which to list the profiles. */
    endTime: string;
    /** The aggregation period. This specifies the period during which an aggregation profile collects posted agent profiles for a profiling group. There are 3 valid values. P1D — 1 day PT1H — 1 hour PT5M — 5 */
    period: 'PT5M' | 'PT1H' | 'P1D';
    /** The name of the profiling group. */
    profilingGroupName: string;
    /** The start time of the time range from which to list the profiles. */
    startTime: string;
    /** The maximum number of profile time results returned by ListProfileTimes in paginated output. When this parameter is used, ListProfileTimes only returns maxResults results in a single page with a nextT */
    maxResults?: number;
    /** The nextToken value returned from a previous paginated ListProfileTimes request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of the */
    nextToken?: string;
    /** The order (ascending or descending by start time of the profile) to use when listing profiles. Defaults to TIMESTAMP_DESCENDING. */
    orderBy?: 'TimestampDescending' | 'TimestampAscending';
}
/** The structure representing the listProfilingGroupsRequest. */
export interface ListProfilingGroupsInput {
    /** A Boolean value indicating whether to include a description. If true, then a list of ProfilingGroupDescription objects that contain detailed information about profiling groups is returned. If false, t */
    includeDescription?: boolean;
    /** The maximum number of profiling groups results returned by ListProfilingGroups in paginated output. When this parameter is used, ListProfilingGroups only returns maxResults results in a single page al */
    maxResults?: number;
    /** The nextToken value returned from a previous paginated ListProfilingGroups request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the end of  */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource that contains the tags to return. */
    resourceArn: string;
}
/** The structure representing the postAgentProfileRequest. */
export interface PostAgentProfileInput {
    /** The submitted profiling data. */
    agentProfile: string;
    /** The format of the submitted profiling data. The format maps to the Accept and Content-Type headers of the HTTP request. You can specify one of the following: or the default . application/json — standa */
    contentType: string;
    /** The name of the profiling group with the aggregated profile that receives the submitted profiling data. */
    profilingGroupName: string;
    /** Amazon CodeGuru Profiler uses this universally unique identifier (UUID) to prevent the accidental submission of duplicate profiling data if there are failures and retries. */
    profileToken?: string;
}
/** The structure representing the putPermissionRequest. */
export interface PutPermissionInput {
    /** Specifies an action group that contains permissions to add to a profiling group resource. One action group is supported, agentPermissions, which grants permission to perform actions required by the pr */
    actionGroup: 'agentPermissions';
    /** A list ARNs for the roles and users you want to grant access to the profiling group. Wildcards are not are supported in the ARNs. */
    principals: string[];
    /** The name of the profiling group to grant access to. */
    profilingGroupName: string;
    /** A universally unique identifier (UUID) for the revision of the policy you are adding to the profiling group. Do not specify this when you add permissions to a profiling group for the first time. If a  */
    revisionId?: string;
}
/** The structure representing the RemoveNotificationChannelRequest. */
export interface RemoveNotificationChannelInput {
    /** The id of the channel that we want to stop receiving notifications. */
    channelId: string;
    /** The name of the profiling group we want to change notification configuration for. */
    profilingGroupName: string;
}
/** The structure representing the removePermissionRequest. */
export interface RemovePermissionInput {
    /** Specifies an action group that contains the permissions to remove from a profiling group's resource-based policy. One action group is supported, agentPermissions, which grants ConfigureAgent and PostA */
    actionGroup: 'agentPermissions';
    /** The name of the profiling group. */
    profilingGroupName: string;
    /** A universally unique identifier (UUID) for the revision of the resource-based policy from which you want to remove permissions. */
    revisionId: string;
}
/** The structure representing the SubmitFeedbackRequest. */
export interface SubmitFeedbackInput {
    /** The universally unique identifier (UUID) of the AnomalyInstance object that is included in the analysis data. */
    anomalyInstanceId: string;
    /** The name of the profiling group that is associated with the analysis data. */
    profilingGroupName: string;
    /** The feedback tpye. Thee are two valid values, Positive and Negative. */
    type: 'Positive' | 'Negative';
    /** Optional feedback about this anomaly. */
    comment?: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource that the tags are added to. */
    resourceArn: string;
    /** The list of tags that are added to the specified resource. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource that contains the tags to remove. */
    resourceArn: string;
    /** A list of tag keys. Existing tags of resources with keys in this list are removed from the specified resource. */
    tagKeys: string[];
}
/** The structure representing the updateProfilingGroupRequest. */
export interface UpdateProfilingGroupInput {
    /** Specifies whether profiling is enabled or disabled for a profiling group. */
    agentOrchestrationConfig: AgentOrchestrationConfig;
    /** The name of the profiling group to update. */
    profilingGroupName: string;
}
/** CodeGuruProfiler service binding for Step Functions SDK integrations. */
export declare class CodeGuruProfiler {
    constructor();
    addNotificationChannels<T>(params: AddNotificationChannelsInput): Promise<T>;
    batchGetFrameMetricData<T>(params: BatchGetFrameMetricDataInput): Promise<T>;
    configureAgent<T>(params: ConfigureAgentInput): Promise<T>;
    deleteProfilingGroup<T>(params: DeleteProfilingGroupInput): Promise<T>;
    describeProfilingGroup<T>(params: DescribeProfilingGroupInput): Promise<T>;
    getFindingsReportAccountSummary<T>(params: GetFindingsReportAccountSummaryInput): Promise<T>;
    getNotificationConfiguration<T>(params: GetNotificationConfigurationInput): Promise<T>;
    getPolicy<T>(params: GetPolicyInput): Promise<T>;
    getProfile<T>(params: GetProfileInput): Promise<T>;
    getRecommendations<T>(params: GetRecommendationsInput): Promise<T>;
    listFindingsReports<T>(params: ListFindingsReportsInput): Promise<T>;
    listProfileTimes<T>(params: ListProfileTimesInput): Promise<T>;
    listProfilingGroups<T>(params: ListProfilingGroupsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    postAgentProfile<T>(params: PostAgentProfileInput): Promise<T>;
    putPermission<T>(params: PutPermissionInput): Promise<T>;
    removeNotificationChannel<T>(params: RemoveNotificationChannelInput): Promise<T>;
    removePermission<T>(params: RemovePermissionInput): Promise<T>;
    submitFeedback<T>(params: SubmitFeedbackInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateProfilingGroup<T>(params: UpdateProfilingGroupInput): Promise<T>;
}
//# sourceMappingURL=CodeGuruProfiler.d.ts.map