/**
* HTML detection for ADO large-text fields.
*
* ADO supports both HTML and Markdown for long-text fields. Sync only
* works against markdown, so before pulling (or pushing) we auto-detect
* HTML and either convert it or report it as skipped.
*
* This module is intentionally generic — it no longer maintains a fixed
* list of "additional" custom fields. Callers pass in the refname list
* they care about (usually derived from the loaded template).
*/
/**
* Standard ADO large-text fields with native markdown support.
*/
export declare const STANDARD_LARGE_TEXT_FIELDS: readonly ["System.Description", "Microsoft.VSTS.Common.AcceptanceCriteria", "Microsoft.VSTS.TCM.ReproSteps"];
/**
* Return the list of large-text fields to check for a work item. Combines
* the standard set with any caller-supplied custom refnames (from the
* loaded template).
*/
export declare function getAllLargeTextFields(customRefnames?: string[]): string[];
export declare function isHtmlContent(content: string | null | undefined): boolean;
export type FieldFormat = 'markdown' | 'html' | 'not_present';
export interface FieldFormatResult {
description: 'markdown' | 'html';
acceptanceCriteria: 'markdown' | 'html';
reproSteps: 'markdown' | 'html' | 'not_present';
ready: boolean;
warnings: string[];
/** Format for each custom body field, keyed by refname. */
additionalFields: Record;
details: {
descriptionLength: number;
acceptanceCriteriaLength: number;
reproStepsLength: number;
};
}
export declare function checkFieldFormats(workItem: {
fields?: {
'System.Description'?: string;
'Microsoft.VSTS.Common.AcceptanceCriteria'?: string;
[key: string]: any;
};
}, additionalRefnames?: string[]): FieldFormatResult;
export declare function getConversionInstructions(): string;
//# sourceMappingURL=html-detection.d.ts.map