import { EventEmitter, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
import { FilterFieldConfig } from '@memberjunction/ng-ui-components';
import { SchedulingInstrumentationService, JobExecution, ExecutionTrendData, JobTypeStatistics } from '../services/scheduling-instrumentation.service';
import * as i0 from "@angular/core";
type TimeRange = '24h' | '7d' | '30d' | '90d';
export declare class SchedulingActivityComponent implements OnInit, OnDestroy {
    private schedulingService;
    private cdr;
    initialState: Record<string, unknown>;
    /** When true, the inner toolbar is hidden — the parent shell is rendering it in `<mj-page-header>` instead. */
    HideToolbar: boolean;
    stateChange: EventEmitter<Record<string, unknown>>;
    Executions: JobExecution[];
    FilteredExecutions: JobExecution[];
    Trends: ExecutionTrendData[];
    JobTypes: JobTypeStatistics[];
    IsLoading: boolean;
    SearchTerm: string;
    StatusFilter: string;
    JobNameFilter: string;
    SelectedTimeRange: TimeRange;
    StatusOptions: string[];
    UniqueJobNames: string[];
    ExpandedExecutionIds: Set<string>;
    TimeRanges: {
        value: TimeRange;
        label: string;
    }[];
    private static readonly SEARCH_STATE_KEY;
    private searchSubject;
    private statusSubject;
    private jobNameSubject;
    private settingsPersistSubject;
    private destroy$;
    private subscriptions;
    private settingsLoaded;
    constructor(schedulingService: SchedulingInstrumentationService, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    private loadUserSettings;
    private restoreState;
    private setupSettingsPersistence;
    private persistSearchState;
    private setupFilters;
    OnSearchChange(term: string): void;
    OnStatusFilterChange(status: string): void;
    OnJobNameFilterChange(name: string): void;
    get ActivityFilterFields(): FilterFieldConfig[];
    get ActivityFilterValues(): Record<string, unknown>;
    get ActiveFilterCount(): number;
    OnFilterValuesChange(values: Record<string, unknown>): void;
    ResetFilters(): void;
    ShouldShowLabel(index: number): boolean;
    OnTimeRangeChange(range: TimeRange): void;
    Refresh(): void;
    ToggleExpand(exec: JobExecution): void;
    IsExpanded(exec: JobExecution): boolean;
    OpenExecutionRecord(exec: JobExecution, event: MouseEvent): void;
    OpenJobRecord(exec: JobExecution, event: MouseEvent): void;
    GetStatusIcon(status: string): string;
    GetStatusClass(status: string): string;
    GetTypeIcon(name: string): string;
    GetSuccessRateColor(rate: number): string;
    FormatDuration(ms: number | undefined): string;
    FormatDateTime(date: Date): string;
    FormatChartLabel(date: Date): string;
    GetMaxTrendValue(): number;
    GetBarHeight(count: number): string;
    FormatPercentage(value: number): string;
    TruncateError(msg: string | undefined): string;
    private applyTimeRange;
    private applyFilters;
    private buildUniqueJobNames;
    private emitState;
    static ɵfac: i0.ɵɵFactoryDeclaration<SchedulingActivityComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SchedulingActivityComponent, "app-scheduling-activity", never, { "initialState": { "alias": "initialState"; "required": false; }; "HideToolbar": { "alias": "HideToolbar"; "required": false; }; }, { "stateChange": "stateChange"; }, never, never, false, never>;
}
export {};
//# sourceMappingURL=scheduling-activity.component.d.ts.map