import { OnInit, OnDestroy } from '@angular/core';
import { MJTestSuiteRunEntity, MJTestSuiteEntity, MJTestRunEntity, MJTestRunFeedbackEntity } from '@memberjunction/core-entities';
import { MJTestSuiteRunFormComponent } from '../../generated/Entities/MJTestSuiteRun/mjtestsuiterun.form.component';
import { EvaluationPreferences, EvaluationMetrics, TestRunWithFeedback, NeedsReviewItem } from '@memberjunction/ng-testing';
import * as i0 from "@angular/core";
export declare class MJTestSuiteRunFormComponentExtended extends MJTestSuiteRunFormComponent implements OnInit, OnDestroy {
    record: MJTestSuiteRunEntity;
    private destroy$;
    activeTab: string;
    loading: boolean;
    loadingTestRuns: boolean;
    loadingFeedbacks: boolean;
    error: string | null;
    testRunsLoaded: boolean;
    feedbacksLoaded: boolean;
    isRefreshing: boolean;
    autoRefreshEnabled: boolean;
    testSuite: MJTestSuiteEntity | null;
    testRuns: MJTestRunEntity[];
    feedbacks: Map<string, MJTestRunFeedbackEntity>;
    tags: string[];
    newTag: string;
    editingTags: boolean;
    savingTags: boolean;
    expandedRunId: string | null;
    inlineRating: number;
    inlineHoverRating: number;
    inlineIsCorrect: boolean | null;
    inlineComments: string;
    savingInlineFeedback: boolean;
    runStatusFilter: string | null;
    keyboardShortcutsEnabled: boolean;
    showShortcuts: boolean;
    private shortcutsSettingEntity;
    private metadata;
    evalPreferences: EvaluationPreferences;
    testRunsWithFeedback: TestRunWithFeedback[];
    evaluationMetrics: EvaluationMetrics | null;
    needsReviewItems: NeedsReviewItem[];
    private navigationService;
    private testingDialogService;
    private evalPrefsService;
    private viewContainerRef;
    private appManager;
    ngOnInit(): Promise<void>;
    private parseTags;
    ngOnDestroy(): void;
    handleKeyboardShortcut(event: KeyboardEvent): void;
    private startAutoRefresh;
    private silentRefresh;
    private loadRelatedData;
    retryLoad(): Promise<void>;
    private loadTestRuns;
    changeTab(tab: string): void;
    getStatusColor(): string;
    getStatusIcon(): string;
    getStatusClass(): string;
    calculateDuration(): string;
    formatCost(cost: number | null): string;
    getPassRate(): number;
    getRelativeTime(date: Date | string | null): string;
    navigateToTestingDashboard(): void;
    openTestSuite(): void;
    openTestRun(runId: string): void;
    reRunSuite(): Promise<void>;
    refresh(): Promise<void>;
    getRunStatusColor(status: string): string;
    getRunStatusIcon(status: string): string;
    startEditingTags(): void;
    cancelEditingTags(): void;
    addTag(): void;
    removeTag(tag: string): void;
    saveTags(): Promise<void>;
    setRunStatusFilter(status: string | null): void;
    getFilteredTestRuns(): MJTestRunEntity[];
    getRunCountByStatus(status: string): number;
    private loadFeedbacks;
    /**
     * Build TestRunWithFeedback array from testRuns and feedbacks
     */
    private buildTestRunsWithFeedback;
    toggleRunExpanded(runId: string): void;
    private initializeInlineFeedback;
    setInlineRating(value: number): void;
    getInlineRatingLabel(): string;
    canSubmitInlineFeedback(): boolean;
    saveInlineFeedback(): Promise<void>;
    hasFeedback(runId: string): boolean;
    getFeedbackRating(runId: string): number;
    /**
     * Get TestRunWithFeedback by run ID for template binding
     */
    getRunWithFeedback(runId: string): TestRunWithFeedback | undefined;
    /**
     * Get the human correctness status for a run
     */
    getHumanIsCorrect(runId: string): boolean | null;
    getRunTags(run: MJTestRunEntity): string[];
    /**
     * Load keyboard shortcuts visibility setting from user settings
     */
    private loadShortcutsSetting;
    /**
     * Toggle keyboard shortcuts visibility and save preference
     */
    toggleShortcuts(): Promise<void>;
    getPassedCount(): number;
    getFailedCount(): number;
    getPassedPercent(): number;
    getFailedPercent(): number;
    getAverageScore(): number;
    getAverageDuration(): number;
    getTotalCost(): number;
    exportToCSV(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MJTestSuiteRunFormComponentExtended, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MJTestSuiteRunFormComponentExtended, "mj-test-suite-run-form", never, {}, {}, never, never, false, never>;
}
//# sourceMappingURL=test-suite-run-form.component.d.ts.map