import { IMetadataProvider } from '@memberjunction/core';
/**
 * A single field entry prepared for display in cards, tooltips, and detail panels.
 */
export interface DisplayFieldEntry {
    /** The raw field name from metadata (e.g., "FirstName") */
    Key: string;
    /** The human-readable display name (e.g., "First Name") */
    DisplayName: string;
    /** The field value */
    Value: unknown;
    /** Whether this field is marked DefaultInView on the entity */
    IsDefaultInView: boolean;
    /** Whether this is the entity's name field */
    IsNameField: boolean;
    /** The field's display sequence from entity metadata */
    Sequence: number;
}
/**
 * Sorts and prioritizes metadata fields for display using MJ entity field metadata.
 *
 * Priority order:
 * 1. IsNameField fields first (the record's display name)
 * 2. DefaultInView fields next, sorted by Sequence
 * 3. All other fields, sorted by Sequence
 *
 * Internal/system fields (Entity, EntityIcon, RecordID, TemplateID, timestamps) are excluded.
 * Empty/null values are excluded.
 *
 * @param entityName - The entity name (e.g., "Members") for metadata lookup
 * @param metadata - The raw metadata object (Record<string, unknown>) from vector DB or similar
 * @returns Sorted array of DisplayFieldEntry objects ready for rendering
 */
export declare function PrioritizeFieldsForDisplay(entityName: string, metadata: Record<string, unknown>, provider?: IMetadataProvider): DisplayFieldEntry[];
/**
 * Returns only the DefaultInView fields (the "important" fields for compact cards).
 * Falls back to first 4 fields if no DefaultInView fields exist.
 */
export declare function GetPrimaryDisplayFields(entityName: string, metadata: Record<string, unknown>, maxFields?: number, provider?: IMetadataProvider): DisplayFieldEntry[];
/**
 * Returns the record's display name from metadata using IsNameField.
 * Falls back to the 'Name' key or first non-empty string value.
 */
export declare function GetRecordDisplayName(entityName: string, metadata: Record<string, unknown>, provider?: IMetadataProvider): string;
//# sourceMappingURL=entity-field-display.d.ts.map