export interface LogGroupConfiguration {
    /** Use this field to specify which log groups are to share their log events with the monitoring account. Use the term LogGroupName and one or more of the following operands. Use single quotation marks (' */
    Filter: string;
}
export interface MetricConfiguration {
    /** Use this field to specify which metrics are to be shared with the monitoring account. Use the term Namespace and one or more of the following operands. Use single quotation marks (') around namespace  */
    Filter: string;
}
export interface LinkConfiguration {
    /** Use this structure to filter which log groups are to send log events from the source account to the monitoring account. */
    LogGroupConfiguration?: LogGroupConfiguration;
    /** Use this structure to filter which metric namespaces are to be shared from the source account to the monitoring account. */
    MetricConfiguration?: MetricConfiguration;
}
export interface CreateLinkInput {
    /** Specify a friendly human-readable name to use to identify this source account when you are viewing data from it in the monitoring account. You can use a custom label or use the following variables: $A */
    LabelTemplate: string;
    /** An array of strings that define which types of data that the source account shares with the monitoring account. */
    ResourceTypes: 'AWS::CloudWatch::Metric' | 'AWS::Logs::LogGroup' | 'AWS::XRay::Trace' | 'AWS::ApplicationInsights::Application' | 'AWS::InternetMonitor::Monitor' | 'AWS::ApplicationSignals::Service' | 'AWS::ApplicationSignals::ServiceLevelObjective'[];
    /** The ARN of the sink to use to create this link. You can use ListSinks to find the ARNs of sinks. For more information about sinks, see CreateSink. */
    SinkIdentifier: string;
    /** Use this structure to optionally create filters that specify that only some metric namespaces or log groups are to be shared from the source account to the monitoring account. */
    LinkConfiguration?: LinkConfiguration;
    /** Assigns one or more tags (key-value pairs) to the link. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to acces */
    Tags?: Record<string, string>;
}
export interface CreateSinkInput {
    /** A name for the sink. */
    Name: string;
    /** Assigns one or more tags (key-value pairs) to the link. Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to acces */
    Tags?: Record<string, string>;
}
export interface DeleteLinkInput {
    /** The ARN of the link to delete. */
    Identifier: string;
}
export interface DeleteSinkInput {
    /** The ARN of the sink to delete. */
    Identifier: string;
}
export interface GetLinkInput {
    /** The ARN of the link to retrieve information for. */
    Identifier: string;
    /** Specifies whether to include the tags associated with the link in the response. When IncludeTags is set to true and the caller has the required permission, oam:ListTagsForResource, the API will return */
    IncludeTags?: boolean;
}
export interface GetSinkInput {
    /** The ARN of the sink to retrieve information for. */
    Identifier: string;
    /** Specifies whether to include the tags associated with the sink in the response. When IncludeTags is set to true and the caller has the required permission, oam:ListTagsForResource, the API will return */
    IncludeTags?: boolean;
}
export interface GetSinkPolicyInput {
    /** The ARN of the sink to retrieve the policy of. */
    SinkIdentifier: string;
}
export interface ListAttachedLinksInput {
    /** The ARN of the sink that you want to retrieve links for. */
    SinkIdentifier: string;
    /** Limits the number of returned links to the specified number. */
    MaxResults?: number;
    /** The token for the next set of items to return. You received this token from a previous call. */
    NextToken?: string;
}
export interface ListLinksInput {
    /** Limits the number of returned links to the specified number. */
    MaxResults?: number;
    /** The token for the next set of items to return. You received this token from a previous call. */
    NextToken?: string;
}
export interface ListSinksInput {
    /** Limits the number of returned links to the specified number. */
    MaxResults?: number;
    /** The token for the next set of items to return. You received this token from a previous call. */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The ARN of the resource that you want to view tags for. The ARN format of a sink is arn:aws:oam:Region:account-id:sink/sink-id The ARN format of a link is arn:aws:oam:Region:account-id:link/link-id Fo */
    ResourceArn: string;
}
export interface PutSinkPolicyInput {
    /** The JSON policy to use. If you are updating an existing policy, the entire existing policy is replaced by what you specify here. The policy must be in JSON string format with quotation marks escaped a */
    Policy: string;
    /** The ARN of the sink to attach this policy to. */
    SinkIdentifier: string;
}
export interface TagResourceInput {
    /** The ARN of the resource that you're adding tags to. The ARN format of a sink is arn:aws:oam:Region:account-id:sink/sink-id The ARN format of a link is arn:aws:oam:Region:account-id:link/link-id For mo */
    ResourceArn: string;
    /** The list of key-value pairs to associate with the resource. */
    Tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The ARN of the resource that you're removing tags from. The ARN format of a sink is arn:aws:oam:Region:account-id:sink/sink-id The ARN format of a link is arn:aws:oam:Region:account-id:link/link-id Fo */
    ResourceArn: string;
    /** The list of tag keys to remove from the resource. */
    TagKeys: string[];
}
export interface UpdateLinkInput {
    /** The ARN of the link that you want to update. */
    Identifier: string;
    /** An array of strings that define which types of data that the source account will send to the monitoring account. Your input here replaces the current set of data types that are shared. */
    ResourceTypes: 'AWS::CloudWatch::Metric' | 'AWS::Logs::LogGroup' | 'AWS::XRay::Trace' | 'AWS::ApplicationInsights::Application' | 'AWS::InternetMonitor::Monitor' | 'AWS::ApplicationSignals::Service' | 'AWS::ApplicationSignals::ServiceLevelObjective'[];
    /** Specifies whether to include the tags associated with the link in the response after the update operation. When IncludeTags is set to true and the caller has the required permission, oam:ListTagsForRe */
    IncludeTags?: boolean;
    /** Use this structure to filter which metric namespaces and which log groups are to be shared from the source account to the monitoring account. */
    LinkConfiguration?: LinkConfiguration;
}
/** OAM service binding for Step Functions SDK integrations. */
export declare class OAM {
    constructor();
    createLink<T>(params: CreateLinkInput): Promise<T>;
    createSink<T>(params: CreateSinkInput): Promise<T>;
    deleteLink<T>(params: DeleteLinkInput): Promise<T>;
    deleteSink<T>(params: DeleteSinkInput): Promise<T>;
    getLink<T>(params: GetLinkInput): Promise<T>;
    getSink<T>(params: GetSinkInput): Promise<T>;
    getSinkPolicy<T>(params: GetSinkPolicyInput): Promise<T>;
    listAttachedLinks<T>(params: ListAttachedLinksInput): Promise<T>;
    listLinks<T>(params: ListLinksInput): Promise<T>;
    listSinks<T>(params: ListSinksInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    putSinkPolicy<T>(params: PutSinkPolicyInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateLink<T>(params: UpdateLinkInput): Promise<T>;
}
//# sourceMappingURL=OAM.d.ts.map