export interface EnabledBaselineParameter {
    /** A string denoting the parameter key. */
    key: string;
    /** A low-level Document object of any type (for example, a Java Object). */
    value: any;
}
export interface EnabledControlParameter {
    /** The key of a key/value pair. */
    key: string;
    /** The value of a key/value pair. */
    value: any;
}
export interface ControlOperationFilter {
    /** The set of controlIdentifier returned by the filter. */
    controlIdentifiers?: string[];
    /** The set of targetIdentifier objects returned by the filter. */
    targetIdentifiers?: string[];
    /** The set controlIdentifier of enabled controls selected by the filter. */
    enabledControlIdentifiers?: string[];
    /** Lists the status of control operations. */
    statuses?: 'SUCCEEDED' | 'FAILED' | 'IN_PROGRESS'[];
    /** The set of ControlOperation objects returned by the filter. */
    controlOperationTypes?: 'ENABLE_CONTROL' | 'DISABLE_CONTROL' | 'UPDATE_ENABLED_CONTROL' | 'RESET_ENABLED_CONTROL'[];
}
export interface EnabledBaselineFilter {
    /** Identifiers for the targets of the Baseline filter operation. */
    targetIdentifiers?: string[];
    /** Identifiers for the Baseline objects returned as part of the filter operation. */
    baselineIdentifiers?: string[];
    /** An optional filter that sets up a list of parentIdentifiers to filter the results of the ListEnabledBaseline output. */
    parentIdentifiers?: string[];
    /** A list of EnablementStatus items. */
    statuses?: 'SUCCEEDED' | 'FAILED' | 'UNDER_CHANGE'[];
    /** A list of EnabledBaselineDriftStatus items for enabled baselines. */
    inheritanceDriftStatuses?: 'IN_SYNC' | 'DRIFTED'[];
}
export interface EnabledControlFilter {
    /** The set of controlIdentifier returned by the filter. */
    controlIdentifiers?: string[];
    /** A list of EnablementStatus items. */
    statuses?: 'SUCCEEDED' | 'FAILED' | 'UNDER_CHANGE'[];
    /** A list of DriftStatus items. */
    driftStatuses?: 'DRIFTED' | 'IN_SYNC' | 'NOT_CHECKING' | 'UNKNOWN'[];
    /** Filters enabled controls by their parent control identifiers, allowing you to find child controls of specific parent controls. */
    parentIdentifiers?: string[];
    /** Filters enabled controls by their inheritance drift status, allowing you to find controls with specific inheritance-related drift conditions. */
    inheritanceDriftStatuses?: 'DRIFTED' | 'IN_SYNC' | 'NOT_CHECKING' | 'UNKNOWN'[];
    /** Filters enabled controls by their resource drift status, allowing you to find controls with specific resource-related drift conditions. */
    resourceDriftStatuses?: 'DRIFTED' | 'IN_SYNC' | 'NOT_CHECKING' | 'UNKNOWN'[];
}
export interface LandingZoneOperationFilter {
    /** The set of landing zone operation types selected by the filter. */
    types?: 'DELETE' | 'CREATE' | 'UPDATE' | 'RESET'[];
    /** The statuses of the set of landing zone operations selected by the filter. */
    statuses?: 'SUCCEEDED' | 'FAILED' | 'IN_PROGRESS'[];
}
export interface CreateLandingZoneInput {
    /** The landing zone version, for example, 3.0. */
    version: string;
    /** The manifest JSON file is a text file that describes your Amazon Web Services resources. For examples, review Launch your landing zone. */
    manifest?: any;
    /** Specifies the types of remediation actions to apply when creating the landing zone, such as automatic drift correction or compliance enforcement. */
    remediationTypes?: 'INHERITANCE_DRIFT'[];
    /** Tags to be applied to the landing zone. */
    tags?: Record<string, string>;
}
export interface DeleteLandingZoneInput {
    /** The unique identifier of the landing zone. */
    landingZoneIdentifier: string;
}
export interface DisableBaselineInput {
    /** Identifier of the EnabledBaseline resource to be deactivated, in ARN format. */
    enabledBaselineIdentifier: string;
}
export interface DisableControlInput {
    /** The ARN of the control. Only Strongly recommended and Elective controls are permitted, with the exception of the Region deny control. For information on how to find the controlIdentifier, see the over */
    controlIdentifier?: string;
    /** The ARN of the enabled control to be disabled, which uniquely identifies the control instance on the target organizational unit. */
    enabledControlIdentifier?: string;
    /** The ARN of the organizational unit. For information on how to find the targetIdentifier, see the overview page. */
    targetIdentifier?: string;
}
export interface EnableBaselineInput {
    /** The ARN of the baseline to be enabled. */
    baselineIdentifier: string;
    /** The specific version to be enabled of the specified baseline. */
    baselineVersion: string;
    /** The ARN of the target on which the baseline will be enabled. Only OUs are supported as targets. */
    targetIdentifier: string;
    /** A list of key-value objects that specify enablement parameters, where key is a string and value is a document of any type. */
    parameters?: EnabledBaselineParameter[];
    /** Tags associated with input to EnableBaseline. */
    tags?: Record<string, string>;
}
export interface EnableControlInput {
    /** The ARN of the control. Only Strongly recommended and Elective controls are permitted, with the exception of the Region deny control. For information on how to find the controlIdentifier, see the over */
    controlIdentifier: string;
    /** The ARN of the organizational unit. For information on how to find the targetIdentifier, see the overview page. */
    targetIdentifier: string;
    /** A list of input parameter values, which are specified to configure the control when you enable it. */
    parameters?: EnabledControlParameter[];
    /** Tags to be applied to the EnabledControl resource. */
    tags?: Record<string, string>;
}
export interface GetBaselineInput {
    /** The ARN of the Baseline resource to be retrieved. */
    baselineIdentifier: string;
}
export interface GetBaselineOperationInput {
    /** The operation ID returned from mutating asynchronous APIs (Enable, Disable, Update, Reset). */
    operationIdentifier: string;
}
export interface GetControlOperationInput {
    /** The ID of the asynchronous operation, which is used to track status. The operation is available for 90 days. */
    operationIdentifier: string;
}
export interface GetEnabledBaselineInput {
    /** Identifier of the EnabledBaseline resource to be retrieved, in ARN format. */
    enabledBaselineIdentifier: string;
}
export interface GetEnabledControlInput {
    /** The controlIdentifier of the enabled control. */
    enabledControlIdentifier: string;
}
export interface GetLandingZoneInput {
    /** The unique identifier of the landing zone. */
    landingZoneIdentifier: string;
}
export interface GetLandingZoneOperationInput {
    /** A unique identifier assigned to a landing zone operation. */
    operationIdentifier: string;
}
export interface ListBaselinesInput {
    /** The maximum number of results to be shown. */
    maxResults?: number;
    /** A pagination token. */
    nextToken?: string;
}
export interface ListControlOperationsInput {
    /** An input filter for the ListControlOperations API that lets you select the types of control operations to view. */
    filter?: ControlOperationFilter;
    /** The maximum number of results to be shown. */
    maxResults?: number;
    /** A pagination token. */
    nextToken?: string;
}
export interface ListEnabledBaselinesInput {
    /** A filter applied on the ListEnabledBaseline operation. Allowed filters are baselineIdentifiers and targetIdentifiers. The filter can be applied for either, or both. */
    filter?: EnabledBaselineFilter;
    /** A value that can be set to include the child enabled baselines in responses. The default value is false. */
    includeChildren?: boolean;
    /** The maximum number of results to be shown. */
    maxResults?: number;
    /** A pagination token. */
    nextToken?: string;
}
export interface ListEnabledControlsInput {
    /** An input filter for the ListEnabledControls API that lets you select the types of control operations to view. */
    filter?: EnabledControlFilter;
    /** A boolean value that determines whether to include enabled controls from child organizational units in the response. */
    includeChildren?: boolean;
    /** How many results to return per API call. */
    maxResults?: number;
    /** The token to continue the list from a previous API call with the same parameters. */
    nextToken?: string;
    /** The ARN of the organizational unit. For information on how to find the targetIdentifier, see the overview page. */
    targetIdentifier?: string;
}
export interface ListLandingZoneOperationsInput {
    /** An input filter for the ListLandingZoneOperations API that lets you select the types of landing zone operations to view. */
    filter?: LandingZoneOperationFilter;
    /** How many results to return per API call. */
    maxResults?: number;
    /** The token to continue the list from a previous API call with the same parameters. */
    nextToken?: string;
}
export interface ListLandingZonesInput {
    /** The maximum number of returned landing zone ARNs, which is one. */
    maxResults?: number;
    /** The token to continue the list from a previous API call with the same parameters. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The ARN of the resource. */
    resourceArn: string;
}
export interface ResetEnabledBaselineInput {
    /** Specifies the ID of the EnabledBaseline resource to be re-enabled, in ARN format. */
    enabledBaselineIdentifier: string;
}
export interface ResetEnabledControlInput {
    /** The ARN of the enabled control to be reset. */
    enabledControlIdentifier: string;
}
export interface ResetLandingZoneInput {
    /** The unique identifier of the landing zone. */
    landingZoneIdentifier: string;
}
export interface TagResourceInput {
    /** The ARN of the resource to be tagged. */
    resourceArn: string;
    /** Tags to be applied to the resource. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The ARN of the resource. */
    resourceArn: string;
    /** Tag keys to be removed from the resource. */
    tagKeys: string[];
}
export interface UpdateEnabledBaselineInput {
    /** Specifies the new Baseline version, to which the EnabledBaseline should be updated. */
    baselineVersion: string;
    /** Specifies the EnabledBaseline resource to be updated. */
    enabledBaselineIdentifier: string;
    /** Parameters to apply when making an update. */
    parameters?: EnabledBaselineParameter[];
}
export interface UpdateEnabledControlInput {
    /** The ARN of the enabled control that will be updated. */
    enabledControlIdentifier: string;
    /** A key/value pair, where Key is of type String and Value is of type Document. */
    parameters: EnabledControlParameter[];
}
export interface UpdateLandingZoneInput {
    /** The unique identifier of the landing zone. */
    landingZoneIdentifier: string;
    /** The landing zone version, for example, 3.2. */
    version: string;
    /** The manifest file (JSON) is a text file that describes your Amazon Web Services resources. For an example, review Launch your landing zone. The example manifest file contains each of the available par */
    manifest?: any;
    /** Specifies the types of remediation actions to apply when updating the landing zone configuration. */
    remediationTypes?: 'INHERITANCE_DRIFT'[];
}
/** ControlTower service binding for Step Functions SDK integrations. */
export declare class ControlTower {
    constructor();
    createLandingZone<T>(params: CreateLandingZoneInput): Promise<T>;
    deleteLandingZone<T>(params: DeleteLandingZoneInput): Promise<T>;
    disableBaseline<T>(params: DisableBaselineInput): Promise<T>;
    disableControl<T>(params: DisableControlInput): Promise<T>;
    enableBaseline<T>(params: EnableBaselineInput): Promise<T>;
    enableControl<T>(params: EnableControlInput): Promise<T>;
    getBaseline<T>(params: GetBaselineInput): Promise<T>;
    getBaselineOperation<T>(params: GetBaselineOperationInput): Promise<T>;
    getControlOperation<T>(params: GetControlOperationInput): Promise<T>;
    getEnabledBaseline<T>(params: GetEnabledBaselineInput): Promise<T>;
    getEnabledControl<T>(params: GetEnabledControlInput): Promise<T>;
    getLandingZone<T>(params: GetLandingZoneInput): Promise<T>;
    getLandingZoneOperation<T>(params: GetLandingZoneOperationInput): Promise<T>;
    listBaselines<T>(params: ListBaselinesInput): Promise<T>;
    listControlOperations<T>(params: ListControlOperationsInput): Promise<T>;
    listEnabledBaselines<T>(params: ListEnabledBaselinesInput): Promise<T>;
    listEnabledControls<T>(params: ListEnabledControlsInput): Promise<T>;
    listLandingZoneOperations<T>(params: ListLandingZoneOperationsInput): Promise<T>;
    listLandingZones<T>(params: ListLandingZonesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    resetEnabledBaseline<T>(params: ResetEnabledBaselineInput): Promise<T>;
    resetEnabledControl<T>(params: ResetEnabledControlInput): Promise<T>;
    resetLandingZone<T>(params: ResetLandingZoneInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateEnabledBaseline<T>(params: UpdateEnabledBaselineInput): Promise<T>;
    updateEnabledControl<T>(params: UpdateEnabledControlInput): Promise<T>;
    updateLandingZone<T>(params: UpdateLandingZoneInput): Promise<T>;
}
//# sourceMappingURL=ControlTower.d.ts.map