import type { DebugSession, RecordedEvent, SessionMetadata } from './types.js';
export interface TestGeneratorOptions {
    framework?: 'jest' | 'playwright' | 'cypress';
    aiModel?: string;
    includeVisualAssertions?: boolean;
}
export interface TestIntent {
    description: string;
    priority: 'low' | 'medium' | 'high' | 'critical';
    categories: string[];
}
export interface TestStep {
    description: string;
    events: RecordedEvent[];
    assertions: string[];
}
export interface UserInteraction {
    type: string;
    selector: string;
    timestamp: number;
    data: any;
}
export interface FormInput {
    selector: string;
    value: string;
    inputType: string;
}
export interface Navigation {
    url: string;
    timestamp: number;
    method: string;
}
export declare class TestGeneratorAI {
    private options;
    constructor(options?: TestGeneratorOptions);
    generateTest(session: DebugSession): Promise<string>;
    analyzeUserInteractions(events: RecordedEvent[]): UserInteraction[];
    analyzeFormInputs(events: RecordedEvent[]): FormInput[];
    analyzeNavigations(events: RecordedEvent[]): Navigation[];
    detectCriticalPaths(events: RecordedEvent[]): string[];
    optimizeSelectors(events: RecordedEvent[]): Record<string, string>;
    groupIntoSteps(events: RecordedEvent[]): TestStep[];
    validateSession(session: DebugSession): void;
    analyzeTestIntent(metadata: SessionMetadata): TestIntent;
    suggestAdditionalTests(session: DebugSession): string[];
    generateTestDescription(session: DebugSession): string;
    private isValidEvent;
    private generateEmptyTestTemplate;
    private generateAssertions;
    private generateJestTest;
    private generatePlaywrightTest;
    private generateCypressTest;
    private generateJestAction;
    private generatePlaywrightAction;
    private generateCypressAction;
    private convertToCypressAssertion;
    private determinePriority;
}
//# sourceMappingURL=test-generator-ai.d.ts.map