export interface TransformDatasetOptions {
    tests: any;
    datasetIds: any[];
    token?: any;
    apiKey?: string;
    orgId: string;
    projectId: string;
    parentPromptId: string;
    testRunId?: string;
    prompts?: any[];
}
/**
 * Service for transforming datasets and processing test data
 * Handles different dataset types and transforms data accordingly
 */
export declare class TransformDatasetService {
    private datasetService;
    private uploadedFileNames;
    private static readonly MAX_VOICE_CONCURRENCY;
    private static currentVoiceConcurrency;
    private static voiceQueue;
    constructor();
    /**
     * Acquire a slot in the voice fetch concurrency pool.
     * Ensures we never have more than MAX_VOICE_CONCURRENCY parallel blob fetches.
     */
    private static acquireVoiceSlot;
    /**
     * Release a slot and wake up the next waiting fetch, if any.
     */
    private static releaseVoiceSlot;
    /**
     * Helper to run a function under the voice concurrency limiter.
     */
    private runWithVoiceConcurrency;
    private processSrcKey;
    /**
     * Replace dataset column placeholder in metric value or return column value if present
     * @param metricValue - The metric value string that may contain {{columnName}}
     * @param columnName - The column name to look for in the placeholder
     * @param columnValue - The value to replace the placeholder with, or return if no placeholder found
     * @returns The replaced value, columnValue if present, or original metricValue
     */
    private replaceMetricColumnValue;
    /**
     * Main entry point for transforming datasets
     */
    transformDataset(options: TransformDatasetOptions): Promise<any[]>;
    /**
     * When no datasets are attached, remove datasetColumn from assertions so eval uses
     * static values only (no row-backed columns).
     */
    private stripDatasetColumnsFromTestAssertions;
    private stripDatasetColumnFromAssertionItem;
    /**
     * Fetch datasets from database
     */
    private fetchDatasets;
    private computeFieldsToGenerateByDatasetId;
    /**
     * Generate datasets that need to be generated on evaluation
     */
    private generateDatasetsForEvaluation;
    /**
     * Map test run to dataset records in background
     */
    private mapTestRunToDatasetRecordsInBackground;
    /**
     * Process all tests with their datasets
     */
    private processTests;
    /**
     * Fetch dataset records from database
     */
    private fetchDatasetRecords;
    /**
     * Transform dataset data based on dataset type
     */
    private transformDatasetDataByType;
    /**
     * Transform CONNECT type dataset
     */
    private transformConnectDataset;
    /**
     * Transform GENERATE or GENERATE_FROM_DOCUMENTS type dataset
     */
    private transformGenerateDataset;
    /**
     * Process a row that's already in structured format
     */
    private processStructuredRow;
    /**
     * Process a voice column (fetch audio blob if needed)
     */
    private processVoiceColumn;
    /**
     * Transform plain row to structured format
     */
    private transformPlainRowToStructured;
    /**
     * Transform UPLOAD type dataset
     */
    private transformUploadDataset;
    /**
     * Process media column (voice, video, image, conversation)
     */
    private processMediaColumn;
    /**
     * Process voice blob
     */
    private processVoiceBlob;
    /**
     * Process conversation blob
     */
    private processConversationBlob;
    /**
     * Expand test for each row in the dataset
     */
    private expandTestForDatasetRows;
    /**
     * Process vars from test and row data
     */
    private processVars;
    /**
     * Process assertions from test and row data
     */
    private processAssertions;
    /**
     * Process assertion with array value
     */
    private processArrayAssertion;
    /**
     * Process assertion with single datasetColumn
     */
    private processSingleColumnAssertion;
    /**
     * Process direct assertion (no datasetColumn)
     */
    private processDirectAssertion;
}
//# sourceMappingURL=transformDatasetService.d.ts.map