import type { DebugSession, RecordedEvent } from './types.js';
export interface PhoenixTestGeneratorOptions {
    framework?: 'phoenix';
    includeVisualAssertions?: boolean;
    generateHelperFunctions?: boolean;
    includeChannelTests?: boolean;
    includeEctoTests?: boolean;
    testModule?: string;
    includeSetupFunctions?: boolean;
}
export interface PhoenixEventAnalysis {
    hasLiveView: boolean;
    hasController: boolean;
    hasDatabase: boolean;
    hasChannels: boolean;
    events: string[];
    controllers: string[];
    actions: string[];
    patterns: string[];
    testComplexity: 'simple' | 'medium' | 'complex';
}
export interface ExUnitStructureOptions {
    moduleName: string;
    includeSetup?: boolean;
    includeChannelTests?: boolean;
}
export interface LiveViewTestCaseOptions {
    testName: string;
    includeAsserts?: boolean;
}
export declare class PhoenixTestGeneratorAI {
    private options;
    constructor(options?: PhoenixTestGeneratorOptions);
    generateTest(session: DebugSession): Promise<string>;
    analyzePhoenixEvents(events: RecordedEvent[]): PhoenixEventAnalysis;
    generateExUnitTestStructure(options: ExUnitStructureOptions): string;
    generateLiveViewTestCase(event: RecordedEvent, options: LiveViewTestCaseOptions): string;
    suggestPhoenixTestImprovements(testCode: string): string[];
    detectPhoenixTestPatterns(events: RecordedEvent[]): string[];
    private generateEmptyTestTemplate;
    private deriveModuleName;
    private generateTestCases;
    private detectFormSubmissionFlow;
    private deriveControllerModuleName;
}
//# sourceMappingURL=phoenix-test-generator-ai.d.ts.map