import type { Construct } from 'constructs';
import type { IResource } from '../../core';
import { Resource } from '../../core';
import type { IDedicatedIpPoolRef, DedicatedIpPoolReference } from '../../interfaces/generated/aws-ses-interfaces.generated';
/**
 * Scaling mode to use for this IP pool.
 *
 * @see https://docs.aws.amazon.com/ses/latest/dg/dedicated-ip.html
 */
export declare enum ScalingMode {
    /**
     * The customer controls which IPs are part of the dedicated IP pool.
     */
    STANDARD = "STANDARD",
    /**
     * The reputation and number of IPs are automatically managed by Amazon SES.
     */
    MANAGED = "MANAGED"
}
/**
 * A dedicated IP pool
 */
export interface IDedicatedIpPool extends IResource, IDedicatedIpPoolRef {
    /**
     * The name of the dedicated IP pool
     *
     * @attribute
     */
    readonly dedicatedIpPoolName: string;
}
/**
 * Properties for a dedicated IP pool
 */
export interface DedicatedIpPoolProps {
    /**
     * A name for the dedicated IP pool.
     *
     * The name must adhere to specific constraints: it can only include
     * lowercase letters (a-z), numbers (0-9), underscores (_), and hyphens (-),
     * and must not exceed 64 characters in length.
     *
     * @default - a CloudFormation generated name
     */
    readonly dedicatedIpPoolName?: string;
    /**
     * The type of scailing mode to use for this IP pool
     *
     * Updating ScalingMode doesn't require a replacement if you're updating its value from `STANDARD` to `MANAGED`.
     * However, updating ScalingMode from `MANAGED` to `STANDARD` is not supported.
     *
     * @default ScalingMode.STANDARD
     */
    readonly scalingMode?: ScalingMode;
}
/**
 * A dedicated IP pool
 */
export declare class DedicatedIpPool extends Resource implements IDedicatedIpPool {
    /** Uniquely identifies this class. */
    static readonly PROPERTY_INJECTION_ID: string;
    /**
     * Use an existing dedicated IP pool
     */
    static fromDedicatedIpPoolName(scope: Construct, id: string, dedicatedIpPoolName: string): IDedicatedIpPool;
    readonly dedicatedIpPoolName: string;
    get dedicatedIpPoolRef(): DedicatedIpPoolReference;
    constructor(scope: Construct, id: string, props?: DedicatedIpPoolProps);
}
