import { ConversationOptions } from '@convo-lang/convo-lang';
import { ReadonlySubject } from '@iyio/common';
import { ConvoModelTestManager } from './ConvoModelTestManager';
import { ConvoModelTestResult } from './convo-testing-types';
export interface ConvoModelTesterOptions {
    model: string;
    skipDefineModel?: boolean;
    initConvo?: string;
    convoOptions?: ConversationOptions;
    manager?: ConvoModelTestManager;
}
export declare class ConvoModelTester {
    private readonly _testResults;
    get testResultsSubject(): ReadonlySubject<ConvoModelTestResult[]>;
    get testResults(): ConvoModelTestResult[];
    private readonly options;
    constructor({ initConvo, convoOptions, model, skipDefineModel, manager, }: ConvoModelTesterOptions);
    runAllTestsAsync(): Promise<void>;
    getTestNames(): string[];
    private readonly createDebugger;
    private createConvo;
    private runTestAsync;
    private publishResult;
    test_sayHi: () => Promise<ConvoModelTestResult>;
    test_jsonArray: () => Promise<ConvoModelTestResult>;
    test_callAddNumbers: () => Promise<ConvoModelTestResult>;
}
