import { z } from 'zod/v4';
import { StixIdentifier } from './stix-id.js';
import './stix-type.js';

/**
 * The official STIX identifier for the MITRE Corporation identity object.
 *
 * This constant represents MITRE's identity in the STIX ecosystem and is used to
 * attribute objects to the MITRE organization.
 */
declare const xMitreIdentity: StixIdentifier;
/**
 * Schema for validating the MITRE identity identifier.
 *
 * Ensures that the value exactly matches MITRE's official STIX identity.
 */
declare const xMitreIdentitySchema: z.ZodLiteral<`identity--${string}`>;
/**
 * Schema for validating modified-by references (`x_mitre_modified_by_ref`).
 *
 * The STIX ID of the MITRE identity object, used to track the identity of the MITRE
 * organization which created the current version of the object. Previous versions may
 * have been created by other individuals or organizations.
 *
 * @example
 * ```typescript
 * xMitreModifiedByRefSchema.parse('identity--c78cb6e5-0c4b-4611-8297-d1b8b55e40b5'); // Valid
 * xMitreModifiedByRefSchema.parse('identity--other'); // Invalid - must be MITRE identity
 * ```
 */
declare const xMitreModifiedByRefSchema: z.ZodLiteral<`identity--${string}`>;
/**
 * Type representing a validated MITRE modified-by reference.
 */
type XMitreModifiedByRef = z.infer<typeof xMitreModifiedByRefSchema>;
/**
 * Schema for validating contributors (`x_mitre_contributors`).
 *
 * An array of names representing people and organizations who have contributed to the
 * ATT&CK object. This property is not found on relationship objects.
 *
 * @example
 * ```typescript
 * xMitreContributorsSchema.parse(['John Doe', 'Acme Security']); // Valid
 * xMitreContributorsSchema.parse([]); // Invalid - at least one contributor required when present
 * ```
 */
declare const xMitreContributorsSchema: z.ZodArray<z.ZodString>;
/**
 * Type representing a list of contributors.
 */
type XMitreContributors = z.infer<typeof xMitreContributorsSchema>;

export { type XMitreContributors, type XMitreModifiedByRef, xMitreContributorsSchema, xMitreIdentity, xMitreIdentitySchema, xMitreModifiedByRefSchema };
