/**
 * SES setup resource — workspace-scoped CRUD over the channel-manager-backed
 * SES setup proxy at ``/v1/{workspace_id}/channels/ses-setup``.
 *
 * Use SES setups to register a verified sending domain (e.g.
 * ``mail.acme.com``) that can then back one or more email use cases. The
 * caller publishes the returned DNS records (DKIM CNAMEs, MX, DMARC TXT)
 * at their DNS provider; subsequent ``get`` or ``verify`` calls re-run the
 * live DNS lookup and update each record's ``verified`` flag.
 */
import type { components } from '../../generated/api.js';
import type { ListParams } from '../../core/utils.js';
import { WorkspaceScopedResource } from '../base.js';
export type CreateSesSetupRequest = components['schemas']['CreateSesSetupRequest'];
export type SesSetupDetail = components['schemas']['SesSetupDetailResponse'];
export type SesSetupListItem = components['schemas']['SesSetupListItemResponse'];
export type DnsRecord = components['schemas']['DnsRecordResponse'];
export type SesSetupListResponse = components['schemas']['PaginatedResponse_SesSetupListItemResponse_'];
export declare class SesSetupResource extends WorkspaceScopedResource {
    /**
     * Create an SES tenant + verified domain identity for this workspace.
     *
     * Returns the DNS records the customer must publish at their DNS provider.
     * The setup is unusable for sending until every record's ``verified`` flag
     * flips to ``true`` (call ``verify`` after publishing DNS to refresh).
     */
    create(body: CreateSesSetupRequest): Promise<SesSetupDetail>;
    /**
     * List SES setups owned by this workspace.
     *
     * Each item carries the cached ``dns_verified`` aggregate; call ``get``
     * for per-record DNS detail.
     */
    list(params?: ListParams): Promise<SesSetupListResponse>;
    /** Auto-paginating async iterable over every SES setup in the workspace. */
    listAutoPaging(params?: ListParams): AsyncGenerator<SesSetupListItem>;
    /**
     * Get an SES setup with a live DNS verification refresh.
     *
     * Channel-manager re-runs ``GetEmailIdentity`` + DMARC/MX resolvers on
     * every call, so each ``get`` is a live check rather than a cache read.
     */
    get(setupId: string): Promise<SesSetupDetail>;
    /**
     * Explicit DNS refresh — equivalent to ``get`` but exposed as a POST so UI
     * "Verify now" actions read as actions rather than reads.
     */
    verify(setupId: string): Promise<SesSetupDetail>;
    /**
     * Tear down the upstream SES tenant + identity and soft-delete the
     * workspace binding. Throws ``ConflictError`` (HTTP 409) if any use case
     * still references the setup — delete those use cases first.
     *
     * Routed through ``extractData`` so 4xx/5xx responses surface as typed
     * SDK errors (matching every other resource's ``delete``); the
     * ``ConflictError`` mapping fires here instead of relying on the
     * underlying client's accidental throw.
     */
    delete(setupId: string): Promise<void>;
}
//# sourceMappingURL=ses-setup.d.ts.map