import * as Provider from "../../Provider.ts";
import { Resource } from "../../Resource.ts";
import { AWSEnvironment } from "../Environment.ts";
import type { Providers } from "../Providers.ts";
/**
* The Amazon Inspector scan types that can be enabled per account.
*/
export type ResourceScanType = "EC2" | "ECR" | "LAMBDA" | "LAMBDA_CODE" | "CODE_REPOSITORY";
declare const Inspector2NotConverged_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
readonly _tag: "Inspector2NotConverged";
} & Readonly;
/**
* Raised when Inspector does not reach the requested scan state within the
* provider's bounded convergence budget.
*/
export declare class Inspector2NotConverged extends Inspector2NotConverged_base<{
readonly accountId: string;
readonly expected: string;
readonly actual: Readonly>;
}> {
}
export interface EnablerProps {
/**
* The resource scan types to enable for the account (e.g. `EC2`, `ECR`,
* `LAMBDA`). Types managed by this resource are disabled again on destroy.
*/
resourceTypes: ResourceScanType[];
}
/** @resource */
export interface Enabler extends Resource<"AWS.Inspector2.Enabler", EnablerProps, {
/** The account the enabler applies to. */
accountId: string;
/** The scan types currently enabled and managed by this resource. */
resourceTypes: string[];
/** The overall Inspector account status (`ENABLED` / `DISABLED` / ...). */
state: string | undefined;
}, never, Providers> {
}
/**
* Amazon Inspector account enablement — an account/region singleton that turns
* on continuous vulnerability scanning for the selected resource types (EC2,
* ECR, Lambda). Inspector exposes no tagging, so ownership is tracked by the
* set of scan types this resource enabled; destroy only disables those types
* and leaves any the account had enabled out-of-band untouched.
*
* ### Enabling Inspector
* **Example:** Enable EC2, ECR, and Lambda scanning
* ```typescript
* const inspector = yield* Inspector2.Enabler("Inspector", {
* resourceTypes: ["EC2", "ECR", "LAMBDA"],
* });
* ```
*/
declare const EnablerResource: import("../../Resource.ts").ResourceClass;
export { EnablerResource as Enabler };
export declare const EnablerProvider: () => import("effect/Layer").Layer, never, AWSEnvironment | import("@distilled.cloud/aws/Credentials").Credentials | import("effect/unstable/http/HttpClient").HttpClient>;
//# sourceMappingURL=Enabler.d.ts.map