/** * FieldExtractor — THE single source of truth for GitHub Projects V2 field value extraction. * * Extraction priority: text || name || value * Case-insensitive field name matching. */ export interface FieldValue { readonly field?: { readonly name?: string; readonly id?: string; }; readonly text?: string; readonly name?: string; readonly value?: string; readonly number?: number; readonly date?: string; readonly optionId?: string; } export interface CommonFields { readonly status: string | undefined; readonly containers: Record; readonly dependencies: string | undefined; readonly aiSuitability: string | undefined; readonly riskLevel: string | undefined; readonly effort: string | undefined; readonly aiContext: string | undefined; } /** * Static utility class for extracting field values from GitHub Projects V2 API responses. */ export declare class FieldExtractor { /** * Extract a single text field value by field name (case-insensitive). * Priority: text || name || value */ static getFieldValue(fieldValues: readonly FieldValue[], fieldName: string): string | undefined; /** Extract a numeric field value by field name (case-insensitive). */ static getNumericFieldValue(fieldValues: readonly FieldValue[], fieldName: string): number | undefined; /** Extract a date field value by field name (case-insensitive). */ static getDateFieldValue(fieldValues: readonly FieldValue[], fieldName: string): string | undefined; /** Extract multiple field values at once. */ static getMultipleFieldValues(fieldValues: readonly FieldValue[], fieldNames: readonly string[]): Record; /** Check if a field has a non-empty value. */ static hasFieldValue(fieldValues: readonly FieldValue[], fieldName: string): boolean; /** Get all unique field names from the field values array. */ static getFieldNames(fieldValues: readonly FieldValue[]): string[]; /** * Extract all common project fields into a typed object. * @param containerDefs - Profile-aware container definitions. When provided, * uses them to extract container fields. Defaults to Wave/Epic (Hydro). */ static extractCommonFields(fieldValues: readonly FieldValue[], containerDefs?: ReadonlyArray<{ id: string; taskField: string; }>): CommonFields; /** Find a field by name (case-insensitive). */ private static findField; } //# sourceMappingURL=field-extractor.d.ts.map