/**
 * IssueEnvelope Validation
 *
 * Validates raw data into a canonical IssueEnvelope.
 * Provides typed validation errors for missing or invalid fields.
 */
import { type IssueEnvelope, type IssueValidationResult } from './types.js';
/**
 * Validate and construct an IssueEnvelope from untyped input.
 *
 * Checks:
 * - `source` is a valid IssueSource
 * - Required string fields are present and non-empty
 * - `description` is present (may be empty string)
 * - `labels` is an array of strings
 * - `priority` is a string or null
 * - `assignee` is a string or null
 * - `item_type` is optional, but if present must be a non-empty string or null
 * - `raw` is a plain object
 *
 * @param input - Untyped input to validate
 * @returns Validation result with either the valid envelope or an array of errors
 */
export declare function validateIssueEnvelope(input: unknown): IssueValidationResult;
/**
 * Validate an IssueEnvelope or throw an ExternalIssueError.
 *
 * Convenience wrapper around validateIssueEnvelope that throws on failure.
 *
 * @param input - Untyped input to validate
 * @returns Valid IssueEnvelope
 * @throws ExternalIssueError with code 'VALIDATION_FAILED' if invalid
 */
export declare function validateOrThrow(input: unknown): IssueEnvelope;
