import { z } from 'zod/v4';

/**
 * Schema for validating individual ATT&CK domain values.
 *
 * ATT&CK domains represent different technology environments covered by the framework.
 *
 * @example
 * ```typescript
 * attackDomainSchema.parse('enterprise-attack'); // Valid
 * attackDomainSchema.parse('mobile-attack'); // Valid
 * attackDomainSchema.parse('cloud-attack'); // Invalid - not a valid domain
 * ```
 */
declare const attackDomainSchema: z.ZodEnum<{
    "enterprise-attack": "enterprise-attack";
    "mobile-attack": "mobile-attack";
    "ics-attack": "ics-attack";
}>;
/**
 * Type representing a single ATT&CK domain.
 */
type AttackDomain = z.infer<typeof attackDomainSchema>;
/**
 * Schema for validating ATT&CK domains (`x_mitre_domains`).
 *
 * An array of technology domains to which the ATT&CK object belongs. At least one
 * domain must be specified.
 *
 * @example
 * ```typescript
 * xMitreDomainsSchema.parse(['enterprise-attack']); // Valid
 * xMitreDomainsSchema.parse(['enterprise-attack', 'mobile-attack']); // Valid
 * xMitreDomainsSchema.parse([]); // Invalid - at least one domain required
 * ```
 */
declare const xMitreDomainsSchema: z.ZodArray<z.ZodEnum<{
    "enterprise-attack": "enterprise-attack";
    "mobile-attack": "mobile-attack";
    "ics-attack": "ics-attack";
}>>;
/**
 * Type representing a list of ATT&CK domains.
 */
type XMitreDomains = z.infer<typeof xMitreDomainsSchema>;

export { type AttackDomain, type XMitreDomains, attackDomainSchema, xMitreDomainsSchema };
