import { TrialResult } from './types';
/**
 * Represents a single trial in an experiment.
 */
export declare class Trial<T extends Record<string, any>, R> {
    private data;
    private func;
    private experimentUUID;
    private maxRetries;
    private state;
    /**
     * Creates a new Trial instance.
     * @param data The input data for the trial.
     * @param func The function to be executed for the trial.
     * @param experimentUUID The UUID of the experiment this trial belongs to.
     * @param maxRetries - The maximum number of retries to wait for eval to finish. Each retry waits for 1s. Default is 60.
     */
    constructor(data: T, func: (...args: any[]) => R | Promise<R>, experimentUUID: string, maxRetries: number);
    /**
     * Runs the trial and returns the result.
     * @returns A promise that resolves to the trial result.
     */
    run(): Promise<TrialResult<T, R | null>>;
    private waitForLogs;
}
