import { InterpolationFormat } from './variable-interpolation'; /** * Data item with its fields (used for selection/row data) */ export type DataItem = Record; /** * Result of interpolation with data fields */ export interface InterpolationResult { text: string; errors?: string[]; } /** * Options for data field replacement */ export interface ReplaceDataFieldsOptions { /** * Whether to URL encode values. Defaults to true. */ urlEncode?: boolean; /** * Current index (0-based) for ${__data.index} replacement. */ index?: number; /** * Total count for ${__data.count} replacement. */ count?: number; } /** * Parse format string to InterpolationFormat enum */ export declare function parseFormat(format: string | undefined): InterpolationFormat | undefined; /** * Replace data field placeholders in a template string with values from a single data item. * * Supports: * - ${__data.fields["fieldName"]} - field value from the item (URL encoded by default) * - ${__data.fields["fieldName"]:format} - field value with format specifier * - ${__data.index} - current index (0-based) if provided in options * - ${__data.count} - total count if provided in options * - ${__data} - full data array * - ${__data:format} - full data array with format specifier * * @param template - The template string with placeholders * @param item - The data item containing field values * @param options - Optional configuration for replacement behavior * @returns InterpolationResult with the interpolated text and any errors */ export declare function replaceDataFields(template: string, item: DataItem, options?: ReplaceDataFieldsOptions): InterpolationResult; /** * Replace data field placeholders in a template string with values from multiple data items (batch mode). * * Supports: * - ${__data[0].fields["fieldName"]} - field value from specific item by index * - ${__data.fields["fieldName"]} - aggregated field values (defaults to CSV format) * - ${__data.fields["fieldName"]:csv} - aggregated field values with format specifier * - ${__data.count} - total number of items * - ${__data} - full data array * - ${__data:format} - full data array with format specifier * * @param template - The template string with placeholders * @param items - Array of data items containing field values * @param options - Optional configuration for replacement behavior * @returns InterpolationResult with the interpolated text and any errors */ export declare function replaceDataFieldsBatch(template: string, items: DataItem[], options?: ReplaceDataFieldsOptions): InterpolationResult; /** * Check if a template contains batch-only patterns (indexed access or format specifiers) */ export declare function hasBatchPatterns(template: string): boolean; /** * Check if a template contains indexed access patterns */ export declare function hasIndexedPatterns(template: string): boolean; /** * Check if a template contains data field patterns */ export declare function hasDataFieldPatterns(template: string): boolean; /** * Extract all field names referenced in a template */ export declare function extractFieldNames(template: string): string[]; //# sourceMappingURL=data-field-interpolation.d.ts.map