import { DataSample } from '@things-factory/dataset'; /** * Media URL Extractor * * Extracts media URLs (image, video, audio) from DataSample for Label Studio tasks */ export interface MediaUrls { [fieldName: string]: string | string[]; } export interface AttachmentInfo { id: string; mimetype: string; name: string; fullpath: string; } /** * Extract all media URLs from a DataSample * Returns an object with field names as keys and URLs as values * * @param sample - DataSample containing media attachments * @param baseUrl - Base URL for converting relative paths to absolute URLs (e.g., 'https://tf.example.com') * @param mediaFields - Optional array of field names to extract. If not provided, extracts all fields. * @returns Object with media URLs keyed by field name */ export declare function extractMediaUrls(sample: DataSample, baseUrl: string, mediaFields?: string[]): MediaUrls; /** * Extract URL from DataSample for a specific field * Handles both single values and arrays */ export declare function extractMediaUrl(sample: DataSample, fieldName: string, baseUrl: string): string | string[] | null; /** * Build Label Studio task data from DataSample * Automatically extracts all media fields and converts to absolute URLs * * @param sample - DataSample with media attachments * @param baseUrl - Base URL for the Things-Factory server * @param mediaFields - Optional list of media field names to include * @returns Object ready for Label Studio task creation */ export declare function buildLabelStudioTaskData(sample: DataSample, baseUrl: string, mediaFields?: string[]): Record; /** * Helper: Get base URL from context or environment * Falls back to environment variable or localhost */ export declare function getBaseUrl(context?: any): string;