export type RetryClass = 'RETRYABLE' | 'NON_RETRYABLE' | 'MANUAL_REVIEW';

export interface AdapterValidateResult {
	ok: boolean;
	errors?: Array<{ code: string; message: string }>;
}

export interface AdapterSendResult {
	status: 'SENT' | 'FAILED';
	railMessageId?: string;
	error?: { code: string; message: string; retryClass: RetryClass };
}

export interface AdapterReceiveResult {
	status: 'ACK' | 'NAK' | 'STATUS';
	railMessageId?: string;
	statusPayload?: Record<string, unknown>;
	error?: { code: string; message: string; retryClass: RetryClass };
}

