import { OnInit, OnDestroy, AfterViewInit, ChangeDetectorRef } from '@angular/core';
import { BaseResourceComponent } from '@memberjunction/ng-shared';
import * as i0 from "@angular/core";
interface LazyChunk {
    /** A friendly label inferred from the underlying loader source. */
    label: string;
    /** The loader function's source-string (used as the unique chunk id internally). */
    chunkId: string;
    loaded: boolean;
    keys: string[];
    /** True when the user clicks "Force Load" — used to disable the button + show spinner. */
    loading?: boolean;
    /** UI state — false initially, user can expand to see all keys. */
    expanded: boolean;
}
/**
 * Lazy Module Status — visualizes the Explorer's lazy-loading registry.
 * Shows each chunk, its status (loaded vs not), the registrations it
 * brings in, and offers a "Force Load" button to preload on demand.
 *
 * Reads from the global `__mj_lazy_registry__` published by `LazyModuleRegistry`
 * — no hard package dep on explorer-core.
 */
export declare class LazyModuleStatusComponent extends BaseResourceComponent implements OnInit, OnDestroy, AfterViewInit {
    private cdr;
    Stats: {
        totalKeys: number;
        loadedKeys: number;
        chunkCount: number;
        loadedChunks: number;
        percent: number;
    };
    Chunks: LazyChunk[];
    Available: boolean;
    Filter: 'all' | 'loaded' | 'not-loaded';
    /** Free-text search narrowing chunks by label or registration key. */
    SearchQuery: string;
    LastRefreshed: Date;
    constructor(cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    private savePrefs;
    GetResourceDisplayName(): Promise<string>;
    GetResourceIconClass(): Promise<string>;
    refresh(): void;
    OnFilterClick(filter: 'all' | 'loaded' | 'not-loaded'): void;
    get FilteredChunks(): LazyChunk[];
    OnForceLoad(chunk: LazyChunk): Promise<void>;
    get LastRefreshedLabel(): string;
    TrackByChunk: (_i: number, c: LazyChunk) => string;
    readonly CollapsedKeyLimit = 8;
    ToggleChunkExpand(chunk: LazyChunk): void;
    VisibleKeys(chunk: LazyChunk): string[];
    HiddenCount(chunk: LazyChunk): number;
    /**
     * Derive a friendly chunk label from the loader function's source. The
     * generated `LAZY_FEATURE_CONFIG` builds loaders that look like:
     *   () => importFn().then(() => {})
     *   where importFn is `() => import('@memberjunction/ng-dashboards/foo.module')`
     * So the chunk id (loader.toString()) usually contains the dynamic import path.
     */
    private deriveChunkLabel;
    /** Publish the current lazy-module status to the AI agent. */
    private publishAgentContext;
    /**
     * Register the read-only client tools the AI agent can invoke against the
     * Lazy Module Status inspector: SearchLazyModules, RefreshModuleStatus.
     */
    private registerAgentClientTools;
    /** Apply (or clear, on empty string) the lazy-module search query. */
    private toolSearch;
    static ɵfac: i0.ɵɵFactoryDeclaration<LazyModuleStatusComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LazyModuleStatusComponent, "mj-lazy-module-status", never, {}, {}, never, never, false, never>;
}
export {};
//# sourceMappingURL=lazy-module-status.component.d.ts.map