import { z } from 'zod';

/**
 * Schema for validating kill chain names.
 *
 * Kill chain names identify which ATT&CK framework variant the phase belongs to.
 *
 * @example
 * ```typescript
 * killChainNameSchema.parse('mitre-attack'); // Valid - Enterprise ATT&CK
 * killChainNameSchema.parse('mitre-mobile-attack'); // Valid - Mobile ATT&CK
 * killChainNameSchema.parse('lockheed-martin'); // Invalid - not an ATT&CK kill chain
 * ```
 */
declare const killChainNameSchema: z.ZodEnum<{
    "mitre-attack": "mitre-attack";
    "mitre-mobile-attack": "mitre-mobile-attack";
    "mitre-ics-attack": "mitre-ics-attack";
}>;
/**
 * Schema for validating kill chain phase objects.
 *
 * Represents a specific phase within an ATT&CK kill chain (e.g., "initial-access",
 * "execution"). Phase names should be all lowercase and use hyphens as word separators.
 *
 * @example
 * ```typescript
 * killChainPhaseSchema.parse({
 *   kill_chain_name: 'mitre-attack',
 *   phase_name: 'initial-access'
 * }); // Valid
 *
 * killChainPhaseSchema.parse({
 *   kill_chain_name: 'mitre-attack',
 *   phase_name: 'Initial Access'
 * }); // Invalid - should be lowercase with hyphens
 * ```
 */
declare const killChainPhaseSchema: z.ZodObject<{
    phase_name: z.ZodString;
    kill_chain_name: z.ZodEnum<{
        "mitre-attack": "mitre-attack";
        "mitre-mobile-attack": "mitre-mobile-attack";
        "mitre-ics-attack": "mitre-ics-attack";
    }>;
}, z.core.$strict>;
/**
 * Type representing a kill chain name.
 */
type KillChainName = z.infer<typeof killChainNameSchema>;
/**
 * Type representing a kill chain phase object.
 */
type KillChainPhase = z.infer<typeof killChainPhaseSchema>;

export { type KillChainName, type KillChainPhase, killChainNameSchema, killChainPhaseSchema };
