export interface CommonControlFilter {
    /** The objective that's used as filter criteria. You can use this parameter to specify one objective ARN at a time. Passing multiple ARNs in the CommonControlFilter isn’t supported. */
    Objectives?: any[];
}
export interface ControlMappingFilter {
    /** A list of control ARNs to filter the mappings. When specified, only mappings associated with these controls are returned. */
    ControlArns?: string[];
    /** A list of common control ARNs to filter the mappings. When specified, only mappings associated with these common controls are returned. */
    CommonControlArns?: string[];
    /** A list of mapping types to filter the mappings. When specified, only mappings of these types are returned. */
    MappingTypes?: 'FRAMEWORK' | 'COMMON_CONTROL' | 'RELATED_CONTROL'[];
}
export interface ImplementationFilter {
    /** A list of implementation types that can serve as filters. For example, you can filter for controls implemented as Amazon Web Services Config Rules by specifying AWS::Config::ConfigRule as a type. */
    Types?: any[];
    /** A list of service-specific identifiers that can serve as filters. For example, you can filter for controls with specific Amazon Web Services Config Rule IDs or Security Hub Control IDs. */
    Identifiers?: any[];
}
export interface ControlFilter {
    /** A filter that narrows the results to controls with specific implementation types or identifiers. This field allows you to find controls that are implemented by specific Amazon Web Services services or */
    Implementations?: ImplementationFilter;
}
export interface ObjectiveFilter {
    /** The domain that's used as filter criteria. You can use this parameter to specify one domain ARN at a time. Passing multiple ARNs in the ObjectiveFilter isn’t supported. */
    Domains?: any[];
}
export interface GetControlInput {
    /** The Amazon Resource Name (ARN) of the control. It has one of the following formats: Global format arn:{PARTITION}:controlcatalog:::control/{CONTROL_CATALOG_OPAQUE_ID} Or Regional format arn:{PARTITION */
    ControlArn: string;
}
export interface ListCommonControlsInput {
    /** An optional filter that narrows the results to a specific objective. This filter allows you to specify one objective ARN at a time. Passing multiple ARNs in the CommonControlFilter isn’t supported. */
    CommonControlFilter?: CommonControlFilter;
    /** The maximum number of results on a page or for an API request call. */
    MaxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    NextToken?: string;
}
export interface ListControlMappingsInput {
    /** An optional filter that narrows the results to specific control mappings based on control ARNs, common control ARNs, or mapping types. */
    Filter?: ControlMappingFilter;
    /** The maximum number of results on a page or for an API request call. */
    MaxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    NextToken?: string;
}
export interface ListControlsInput {
    /** An optional filter that narrows the results to controls with specific implementation types or identifiers. If you don't provide a filter, the operation returns all available controls. */
    Filter?: ControlFilter;
    /** The maximum number of results on a page or for an API request call. */
    MaxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    NextToken?: string;
}
export interface ListDomainsInput {
    /** The maximum number of results on a page or for an API request call. */
    MaxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    NextToken?: string;
}
export interface ListObjectivesInput {
    /** The maximum number of results on a page or for an API request call. */
    MaxResults?: number;
    /** The pagination token that's used to fetch the next set of results. */
    NextToken?: string;
    /** An optional filter that narrows the results to a specific domain. This filter allows you to specify one domain ARN at a time. Passing multiple ARNs in the ObjectiveFilter isn’t supported. */
    ObjectiveFilter?: ObjectiveFilter;
}
/** ControlCatalog service binding for Step Functions SDK integrations. */
export declare class ControlCatalog {
    constructor();
    getControl<T>(params: GetControlInput): Promise<T>;
    listCommonControls<T>(params: ListCommonControlsInput): Promise<T>;
    listControlMappings<T>(params: ListControlMappingsInput): Promise<T>;
    listControls<T>(params: ListControlsInput): Promise<T>;
    listDomains<T>(params: ListDomainsInput): Promise<T>;
    listObjectives<T>(params: ListObjectivesInput): Promise<T>;
}
//# sourceMappingURL=ControlCatalog.d.ts.map