/**
 * Shared validation utilities for conflict domain types.
 *
 * These helpers validate runtime invariants on values whose TypeScript
 * types are already known (the calling constructors accept typed fields).
 * They live at the boundary between TS typing and runtime truth: the
 * type system promises "string, number, boolean", but the runtime value
 * may still be empty, negative, or out of range.
 *
 * Every helper accepts the declared TS input type. Cycle 0025B3 removed
 * the wide-net untyped signatures that used to live here; validators
 * that genuinely cross an untyped boundary live inside type-guard
 * predicates (`isFoo(value): value is Foo`) in the modules that own the
 * boundary.
 *
 * @module domain/types/conflict/validation
 */
import type { ConflictDiagnosticData } from './ConflictDiagnostic.ts';
/**
 * Validates that a string value is non-empty.
 */
export declare function requireNonEmptyString(value: string, name: string, context: string): string;
/**
 * Validates that a numeric value is a non-negative integer.
 */
export declare function requireNonNegativeInt(value: number, name: string, context: string): number;
/**
 * Validates that a value is a boolean.
 */
export declare function requireBoolean(value: boolean, name: string, context: string): boolean;
/**
 * Validates that a string value belongs to a fixed allowed set.
 */
export declare function requireEnum(value: string, allowed: Set<string>, { name, context }: {
    name: string;
    context: string;
}): string;
/**
 * Validates an optional string — must be non-empty when present.
 */
export declare function optionalString(value: string | null | undefined, name: string, context: string): string | undefined;
/**
 * Validates an optional enum — must be in the allowed set when present.
 */
export declare function optionalEnum(value: string | null | undefined, allowed: Set<string>, label: {
    name: string;
    context: string;
}): string | undefined;
/**
 * Deep-freezes an optional diagnostic data payload. Returns undefined
 * when absent.
 */
export declare function freezeOptionalDiagnosticData(value: ConflictDiagnosticData | null | undefined): ConflictDiagnosticData | undefined;
/**
 * Freezes an array of strings, returning an empty frozen array when absent.
 */
export declare function freezeStringArray(value: readonly string[] | null | undefined): readonly string[];
/**
 * Lexicographic string comparison for sorting.
 */
export declare function compareStrings(a: string, b: string): number;
