import { AfterViewInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
import { BaseDashboard } from '@memberjunction/ng-shared';
import { Subject } from 'rxjs';
import { ResourceData } from '@memberjunction/core-entities';
import { TestingDialogService, TestingExecutionService, ActiveRun } from '@memberjunction/ng-testing';
import { TabConfig } from '@memberjunction/ng-ui-components';
import { TestingInstrumentationService } from './services/testing-instrumentation.service';
import * as i0 from "@angular/core";
interface TestingDashboardState {
    activeTab: string;
    dashboardState: Record<string, unknown>;
    runsState: Record<string, unknown>;
    analyticsState: Record<string, unknown>;
    reviewState: Record<string, unknown>;
}
export declare class TestingDashboardComponent extends BaseDashboard implements AfterViewInit, OnDestroy {
    private cdr;
    testingDialogService: TestingDialogService;
    private executionService;
    private instrumentationService;
    isLoading: boolean;
    activeTab: string;
    selectedIndex: number;
    ActiveRuns: ActiveRun[];
    dashboardState: Record<string, unknown> | null;
    runsState: Record<string, unknown> | null;
    analyticsState: Record<string, unknown> | null;
    reviewState: Record<string, unknown> | null;
    private visitedTabs;
    navigationItems: string[];
    navigationConfig: {
        text: string;
        icon: string;
        selected: boolean;
    }[];
    get Tabs(): TabConfig[];
    private stateChangeSubject;
    protected destroy$: Subject<void>;
    constructor(cdr: ChangeDetectorRef, testingDialogService: TestingDialogService, executionService: TestingExecutionService, instrumentationService: TestingInstrumentationService);
    GetResourceDisplayName(data: ResourceData): Promise<string>;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onTabChange(tabId: string): void;
    hasVisited(tabId: string): boolean;
    private setupStateManagement;
    private emitStateChange;
    onDashboardStateChange(state: Record<string, unknown>): void;
    onRunsStateChange(state: Record<string, unknown>): void;
    onAnalyticsStateChange(state: Record<string, unknown>): void;
    onReviewStateChange(state: Record<string, unknown>): void;
    loadUserState(state: Partial<TestingDashboardState>): void;
    initDashboard(): void;
    loadData(): void;
    getCurrentTabLabel(): string;
    OnPanelClosed(): void;
    OnViewActiveRun(run: ActiveRun): void;
    OnViewRunningTestFromTab(testId: string): void;
    private updateNavigationSelection;
    static ɵfac: i0.ɵɵFactoryDeclaration<TestingDashboardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TestingDashboardComponent, "mj-testing-dashboard", never, {}, {}, never, never, false, never>;
}
export {};
//# sourceMappingURL=testing-dashboard.component.d.ts.map