import { AfterViewInit, OnDestroy } from '@angular/core';
import { BaseDashboard } from '@memberjunction/ng-shared';
import { EntityInfo } from '@memberjunction/core';
import { ERDCompositeComponent, ERDCompositeState } from '@memberjunction/ng-entity-relationship-diagram';
import { ResourceData } from '@memberjunction/core-entities';
import * as i0 from "@angular/core";
export declare class EntityAdminDashboardComponent extends BaseDashboard implements AfterViewInit, OnDestroy {
    erdComposite: ERDCompositeComponent;
    isLoading: boolean;
    isRefreshingERD: boolean;
    loadingMessage: string;
    error: string | null;
    filterPanelVisible: boolean;
    selectedEntity: EntityInfo | null;
    filteredEntities: EntityInfo[];
    /** Total unfiltered entity count — feeds the chrome's X-of-Y badge. */
    get TotalEntityCount(): number;
    private userStateChangeSubject;
    private hasLoadedUserState;
    private metadata;
    private userSettingEntity;
    ngAfterViewInit(): void;
    GetResourceDisplayName(data: ResourceData): Promise<string>;
    ngOnDestroy(): void;
    protected initDashboard(): void;
    protected loadData(): void;
    toggleFilterPanel(): void;
    onStateChange(state: ERDCompositeState): void;
    onUserStateChange(state: ERDCompositeState): void;
    onEntityOpened(entity: EntityInfo): void;
    onOpenRecord(event: {
        EntityName: string;
        RecordID: string;
    }): void;
    openEntity(entity: EntityInfo): void;
    /**
     * Load ERD state from MJ: User Settings entity using UserInfoEngine for cached access
     */
    private loadStateFromUserSettings;
    /**
     * Save ERD state to MJ: User Settings entity using UserInfoEngine for cached lookup
     */
    private saveStateToUserSettings;
    /**
     * Publish the current Entity Admin ERD-browser state to the AI agent via
     * NavigationService. Reports — at Data-Explorer depth — the entity counts (total +
     * filtered), the active filter values (schema / search / status), the current
     * selection (id + registered name + DISPLAY name + schema + description + field count
     * + a bounded relationship summary), filter-panel visibility, a bounded list of
     * available entity DISPLAY names, and the schema-grouping landscape. The shaping lives
     * in the pure {@link buildEntityAdminAgentContext} helper so it stays unit-testable.
     * Called on init (ngAfterViewInit) and on every ERD state change (onStateChange).
     */
    private publishAgentContext;
    /** Related-entity summaries for the selected entity (display name + relationship type). */
    private buildRelatedEntitySummaries;
    /** Schema-grouping summaries across the currently-visible (filtered) entities. */
    private buildSchemaGroupSummaries;
    /** The ERD's loaded entities, narrowed to the resolver's structural shape. */
    private get entityCandidates();
    /**
     * Register the (read-only / navigational) client tools the AI agent can invoke
     * against the Entity Admin ERD. Each handler delegates to the same component or
     * ERD method a user interaction would call, and returns `{ Success: true }` on
     * success or `{ Success: false, ErrorMessage }` on failure. Handlers never throw.
     *
     * Tools (browse only — see SAFETY BOUNDARY above):
     * - SelectEntity: select/focus an entity by its ID, registered Name, or DISPLAY name.
     * - ToggleFilterPanel: show/hide the ERD filter panel.
     * - ClearEntitySelection: deselect the currently selected entity.
     * - RefreshERD: re-render the ERD diagram.
     * - FilterEntities: narrow the ERD by schema and/or a name search.
     * - NavigateToEntityRecord: open an entity's record list/view (read-only navigation).
     */
    private registerAgentClientTools;
    /** Resolve an entity by ID / registered name / display name and select/focus it. */
    private toolSelectEntity;
    /** Deselect the currently selected entity in the ERD. */
    private toolClearEntitySelection;
    /** Re-render the ERD diagram. */
    private toolRefreshERD;
    /** Narrow the ERD by schema and/or a name search (read-only — only changes what's shown). */
    private toolFilterEntities;
    /** Open an entity's record list / data view for viewing (read-only navigation). */
    private toolNavigateToEntityRecord;
    static ɵfac: i0.ɵɵFactoryDeclaration<EntityAdminDashboardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EntityAdminDashboardComponent, "mj-entity-admin-dashboard", never, {}, {}, never, never, false, never>;
}
//# sourceMappingURL=entity-admin-dashboard.component.d.ts.map