export interface TargetResource {
    /** A target identifier is a pair of identifying information for a scope. A target identifier is made up of a targetID (currently always an account ID) and a targetType (currently always an account). */
    targetIdentifier: any;
    /** The Amazon Web Services Region for the scope. */
    region: string;
}
export interface MonitorLocalResource {
    /** The type of the local resource. Valid values are AWS::EC2::VPC AWS::AvailabilityZone, AWS::EC2::Subnet, AWS::EKS::Cluster, or AWS::Region. */
    type: 'AWS::EC2::VPC' | 'AWS::AvailabilityZone' | 'AWS::EC2::Subnet' | 'AWS::Region' | 'AWS::EKS::Cluster';
    /** The identifier of the local resource. The values you can specify are the following: For a VPC, subnet or EKS cluster, this identifier is the VPC Amazon Resource Name (ARN), subnet ARN or cluster ARN.  */
    identifier: string;
}
export interface MonitorRemoteResource {
    /** The type of the remote resource. Valid values are AWS::EC2::VPC AWS::AvailabilityZone, AWS::EC2::Subnet, AWS::AWSService, or AWS::Region. */
    type: 'AWS::EC2::VPC' | 'AWS::AvailabilityZone' | 'AWS::EC2::Subnet' | 'AWS::AWSService' | 'AWS::Region';
    /** The identifier of the remote resource. For a VPC or subnet, this identifier is the VPC Amazon Resource Name (ARN) or subnet ARN. For an Availability Zone, this identifier is the AZ name, for example,  */
    identifier: string;
}
export interface CreateScopeInput {
    /** The targets to define the scope to be monitored. A target is an array of targetResources, which are currently Region-account pairs, defined by targetResource constructs. */
    targets: TargetResource[];
    /** A unique, case-sensitive string of up to 64 ASCII characters that you specify to make an idempotent API request. Don't reuse the same client token for other API requests. */
    clientToken?: string;
    /** The tags for a scope. You can add a maximum of 200 tags. */
    tags?: Record<string, string>;
}
export interface DeleteMonitorInput {
    /** The name of the monitor to delete. */
    monitorName: string;
}
export interface DeleteScopeInput {
    /** The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account. */
    scopeId: string;
}
export interface GetMonitorInput {
    /** The name of the monitor. */
    monitorName: string;
}
export interface GetQueryResultsMonitorTopContributorsInput {
    /** The name of the monitor. */
    monitorName: string;
    /** The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to create a query. */
    queryId: string;
    /** The number of query results that you want to return with this call. */
    maxResults?: number;
    /** The token for the next set of results. You receive this token from a previous call. */
    nextToken?: string;
}
export interface GetQueryResultsWorkloadInsightsTopContributorsInput {
    /** The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to create a query. */
    queryId: string;
    /** The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account. */
    scopeId: string;
    /** The number of query results that you want to return with this call. */
    maxResults?: number;
    /** The token for the next set of results. You receive this token from a previous call. */
    nextToken?: string;
}
export interface GetQueryResultsWorkloadInsightsTopContributorsDataInput {
    /** The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to create a query. */
    queryId: string;
    /** The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account. */
    scopeId: string;
    /** The number of query results that you want to return with this call. */
    maxResults?: number;
    /** The token for the next set of results. You receive this token from a previous call. */
    nextToken?: string;
}
export interface GetQueryStatusMonitorTopContributorsInput {
    /** The name of the monitor. */
    monitorName: string;
    /** The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query. */
    queryId: string;
}
export interface GetQueryStatusWorkloadInsightsTopContributorsInput {
    /** The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query. */
    queryId: string;
    /** The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account. */
    scopeId: string;
}
export interface GetQueryStatusWorkloadInsightsTopContributorsDataInput {
    /** The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to start a query. */
    queryId: string;
    /** The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account. */
    scopeId: string;
}
export interface GetScopeInput {
    /** The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account. */
    scopeId: string;
}
export interface ListMonitorsInput {
    /** The number of query results that you want to return with this call. */
    maxResults?: number;
    /** The status of a monitor. The status can be one of the following PENDING: The monitor is in the process of being created. ACTIVE: The monitor is active. INACTIVE: The monitor is inactive. ERROR: Monito */
    monitorStatus?: 'PENDING' | 'ACTIVE' | 'INACTIVE' | 'ERROR' | 'DELETING';
    /** The token for the next set of results. You receive this token from a previous call. */
    nextToken?: string;
}
export interface ListScopesInput {
    /** The number of query results that you want to return with this call. */
    maxResults?: number;
    /** The token for the next set of results. You receive this token from a previous call. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
}
export interface StartQueryMonitorTopContributorsInput {
    /** The category that you want to query top contributors for, for a specific monitor. Destination categories can be one of the following: INTRA_AZ: Top contributor network flows within a single Availabili */
    destinationCategory: 'INTRA_AZ' | 'INTER_AZ' | 'INTER_VPC' | 'UNCLASSIFIED' | 'AMAZON_S3' | 'AMAZON_DYNAMODB' | 'INTER_REGION';
    /** The timestamp that is the date and time end of the period that you want to retrieve results for with your query. */
    endTime: string;
    /** The metric that you want to query top contributors for. That is, you can specify a metric with this call and return the top contributor network flows, for that type of metric, for a monitor and (optio */
    metricName: 'ROUND_TRIP_TIME' | 'TIMEOUTS' | 'RETRANSMISSIONS' | 'DATA_TRANSFERRED';
    /** The name of the monitor. */
    monitorName: string;
    /** The timestamp that is the date and time that is the beginning of the period that you want to retrieve results for with your query. */
    startTime: string;
    /** The maximum number of top contributors to return. */
    limit?: number;
}
export interface StartQueryWorkloadInsightsTopContributorsInput {
    /** The destination category for a top contributors row. Destination categories can be one of the following: INTRA_AZ: Top contributor network flows within a single Availability Zone INTER_AZ: Top contrib */
    destinationCategory: 'INTRA_AZ' | 'INTER_AZ' | 'INTER_VPC' | 'UNCLASSIFIED' | 'AMAZON_S3' | 'AMAZON_DYNAMODB' | 'INTER_REGION';
    /** The timestamp that is the date and time end of the period that you want to retrieve results for with your query. */
    endTime: string;
    /** The metric that you want to query top contributors for. That is, you can specify this metric to return the top contributor network flows, for this type of metric, for a monitor and (optionally) within */
    metricName: 'TIMEOUTS' | 'RETRANSMISSIONS' | 'DATA_TRANSFERRED';
    /** The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account. */
    scopeId: string;
    /** The timestamp that is the date and time that is the beginning of the period that you want to retrieve results for with your query. */
    startTime: string;
    /** The maximum number of top contributors to return. */
    limit?: number;
}
export interface StartQueryWorkloadInsightsTopContributorsDataInput {
    /** The destination category for a top contributors. Destination categories can be one of the following: INTRA_AZ: Top contributor network flows within a single Availability Zone INTER_AZ: Top contributor */
    destinationCategory: 'INTRA_AZ' | 'INTER_AZ' | 'INTER_VPC' | 'UNCLASSIFIED' | 'AMAZON_S3' | 'AMAZON_DYNAMODB' | 'INTER_REGION';
    /** The timestamp that is the date and time end of the period that you want to retrieve results for with your query. */
    endTime: string;
    /** The metric that you want to query top contributors for. That is, you can specify this metric to return the top contributor network flows, for this type of metric, for a monitor and (optionally) within */
    metricName: 'TIMEOUTS' | 'RETRANSMISSIONS' | 'DATA_TRANSFERRED';
    /** The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account. */
    scopeId: string;
    /** The timestamp that is the date and time that is the beginning of the period that you want to retrieve results for with your query. */
    startTime: string;
}
export interface StopQueryMonitorTopContributorsInput {
    /** The name of the monitor. */
    monitorName: string;
    /** The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to create a query. */
    queryId: string;
}
export interface StopQueryWorkloadInsightsTopContributorsInput {
    /** The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to create a query. */
    queryId: string;
    /** The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account. */
    scopeId: string;
}
export interface StopQueryWorkloadInsightsTopContributorsDataInput {
    /** The identifier for the query. A query ID is an internally-generated identifier for a specific query returned from an API call to create a query. */
    queryId: string;
    /** The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account. */
    scopeId: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
    /** The tags for a resource. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
    /** Keys that you specified when you tagged a resource. */
    tagKeys: string[];
}
export interface UpdateMonitorInput {
    /** The name of the monitor. */
    monitorName: string;
    /** A unique, case-sensitive string of up to 64 ASCII characters that you specify to make an idempotent API request. Don't reuse the same client token for other API requests. */
    clientToken?: string;
    /** Additional local resources to specify network flows for a monitor, as an array of resources with identifiers and types. A local resource in a workload is the location of hosts where the Network Flow M */
    localResourcesToAdd?: MonitorLocalResource[];
    /** The local resources to remove, as an array of resources with identifiers and types. */
    localResourcesToRemove?: MonitorLocalResource[];
    /** The remote resources to add, as an array of resources with identifiers and types. A remote resource is the other endpoint in the flow of a workload, with a local resource. For example, Amazon Dynamo D */
    remoteResourcesToAdd?: MonitorRemoteResource[];
    /** The remote resources to remove, as an array of resources with identifiers and types. A remote resource is the other endpoint specified for the network flow of a workload, with a local resource. For ex */
    remoteResourcesToRemove?: MonitorRemoteResource[];
}
export interface UpdateScopeInput {
    /** The identifier for the scope that includes the resources you want to get data results for. A scope ID is an internally-generated identifier that includes all the resources for a specific root account. */
    scopeId: string;
    /** A list of resources to add to a scope. */
    resourcesToAdd?: TargetResource[];
    /** A list of resources to delete from a scope. */
    resourcesToDelete?: TargetResource[];
}
/** NetworkFlowMonitor service binding for Step Functions SDK integrations. */
export declare class NetworkFlowMonitor {
    constructor();
    createScope<T>(params: CreateScopeInput): Promise<T>;
    deleteMonitor<T>(params: DeleteMonitorInput): Promise<T>;
    deleteScope<T>(params: DeleteScopeInput): Promise<T>;
    getMonitor<T>(params: GetMonitorInput): Promise<T>;
    getQueryResultsMonitorTopContributors<T>(params: GetQueryResultsMonitorTopContributorsInput): Promise<T>;
    getQueryResultsWorkloadInsightsTopContributors<T>(params: GetQueryResultsWorkloadInsightsTopContributorsInput): Promise<T>;
    getQueryResultsWorkloadInsightsTopContributorsData<T>(params: GetQueryResultsWorkloadInsightsTopContributorsDataInput): Promise<T>;
    getQueryStatusMonitorTopContributors<T>(params: GetQueryStatusMonitorTopContributorsInput): Promise<T>;
    getQueryStatusWorkloadInsightsTopContributors<T>(params: GetQueryStatusWorkloadInsightsTopContributorsInput): Promise<T>;
    getQueryStatusWorkloadInsightsTopContributorsData<T>(params: GetQueryStatusWorkloadInsightsTopContributorsDataInput): Promise<T>;
    getScope<T>(params: GetScopeInput): Promise<T>;
    listMonitors<T>(params: ListMonitorsInput): Promise<T>;
    listScopes<T>(params: ListScopesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    startQueryMonitorTopContributors<T>(params: StartQueryMonitorTopContributorsInput): Promise<T>;
    startQueryWorkloadInsightsTopContributors<T>(params: StartQueryWorkloadInsightsTopContributorsInput): Promise<T>;
    startQueryWorkloadInsightsTopContributorsData<T>(params: StartQueryWorkloadInsightsTopContributorsDataInput): Promise<T>;
    stopQueryMonitorTopContributors<T>(params: StopQueryMonitorTopContributorsInput): Promise<T>;
    stopQueryWorkloadInsightsTopContributors<T>(params: StopQueryWorkloadInsightsTopContributorsInput): Promise<T>;
    stopQueryWorkloadInsightsTopContributorsData<T>(params: StopQueryWorkloadInsightsTopContributorsDataInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateMonitor<T>(params: UpdateMonitorInput): Promise<T>;
    updateScope<T>(params: UpdateScopeInput): Promise<T>;
}
//# sourceMappingURL=NetworkFlowMonitor.d.ts.map