/**
 * @fileoverview Knowledge Hub Scheduled Pipelines Dashboard Tab
 *
 * Full-page resource component for managing scheduled pipelines within the
 * Knowledge Hub application. Displays job cards in a compact grid, recent
 * activity table, and provides create/edit via the reusable
 * ScheduledJobDialogComponent from @memberjunction/ng-scheduling.
 *
 * Registered as BaseResourceComponent for the Knowledge Hub application.
 */
import { OnDestroy, AfterViewInit } from '@angular/core';
import { Subject } from 'rxjs';
import { ResourceData, MJScheduledJobEntity, MJScheduledJobRunEntity } from '@memberjunction/core-entities';
import { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';
import { ScheduledJobDialogResult } from '@memberjunction/ng-scheduling';
import * as i0 from "@angular/core";
export declare class SchedulingResourceComponent extends BaseResourceComponent implements AfterViewInit, OnDestroy {
    /**
     * When true, renders only the body content (no <mj-page-layout> + <mj-page-header>
     * chrome). Used when embedded inside another resource page (e.g. KH Configuration's
     * Scheduling section) so we don't get nested page-layouts that trap click events.
     *
     * Named `HideToolbar` for cross-section consistency with Scheduling/Testing inner
     * components — see plans/explorer-chrome-conventions.md Section 5. The name is
     * narrower than its actual behavior (suppresses entire chrome, not just the toolbar)
     * but matches the documented convention.
     */
    HideToolbar: boolean;
    private cdr;
    protected navigationService: NavigationService;
    private scheduledJobService;
    protected destroy$: Subject<void>;
    GetResourceDisplayName(_data: ResourceData): Promise<string>;
    GetResourceIconClass(_data: ResourceData): Promise<string>;
    IsLoading: boolean;
    AllJobs: MJScheduledJobEntity[];
    FilteredJobs: MJScheduledJobEntity[];
    RecentRuns: MJScheduledJobRunEntity[];
    StatusFilter: string;
    SearchQuery: string;
    /** Map of jobID -> last 7 run statuses for sparkline display */
    private sparklineCache;
    ShowEditDialog: boolean;
    EditingJobID: string | null;
    get ActiveCount(): number;
    get PausedCount(): number;
    get DisabledCount(): number;
    ngAfterViewInit(): Promise<void>;
    ngOnDestroy(): void;
    OnNewSchedule(): void;
    OnFilterChanged(): void;
    OnSearchChanged(): void;
    OnEditJob(job: MJScheduledJobEntity): void;
    OnRunNow(job: MJScheduledJobEntity): Promise<void>;
    OnDialogClosed(result: ScheduledJobDialogResult): Promise<void>;
    /** Navigate to the full Scheduling application */
    GoToSchedulingApp(): void;
    GetStatusDotClass(job: MJScheduledJobEntity): string;
    GetCronDescription(cron: string): string;
    GetSparkline(jobID: string): string[];
    GetTimeAgo(date: Date | null): string;
    GetTimeUntil(date: Date | null): string;
    GetSuccessRate(job: MJScheduledJobEntity): string;
    GetSuccessRateClass(job: MJScheduledJobEntity): string;
    GetDuration(run: MJScheduledJobRunEntity): string;
    GetItemsProcessed(run: MJScheduledJobRunEntity): string;
    private loadData;
    private applyFilters;
    /**
     * Build sparkline data for each job from the last 7 runs.
     * Each dot is 'ok', 'fail', or 'skip'.
     */
    private buildSparklineCache;
    private runStatusToDot;
    private parseCron;
    private cronToHuman;
    private formatTime;
    private dayOfWeekName;
    private formatDuration;
    private formatDurationShort;
    private formatNumber;
    static ɵfac: i0.ɵɵFactoryDeclaration<SchedulingResourceComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SchedulingResourceComponent, "app-scheduling-resource", never, { "HideToolbar": { "alias": "HideToolbar"; "required": false; }; }, {}, never, never, false, never>;
}
/** Tree-shaking prevention */
export declare function LoadSchedulingResource(): void;
//# sourceMappingURL=scheduling-resource.component.d.ts.map