import { BaseDashboard } from '@memberjunction/ng-shared';
import { ResourceData } from '@memberjunction/core-entities';
import { DatabaseDesignerService } from '../services/database-designer.service.js';
import type { AccessibleEntity } from '../database-designer.types.js';
import * as i0 from "@angular/core";
export declare class DatabaseDesignerDashboardComponent extends BaseDashboard {
    /** Angular DI: write operations (create, modify, validate). */
    protected readonly designerService: DatabaseDesignerService;
    /** Change detection ref for OnPush updates. */
    private readonly cdr;
    /** Reference to the active modify component — used for close-guard state. */
    private modifyRef?;
    /**
     * Passed as `[CanClose]` to the modify slide panel.
     * Prevents the panel from closing while a pipeline is running and prompts the user
     * for confirmation.  Defined as an arrow function so `this` is captured correctly
     * when called by `MjSlidePanelComponent` (no angular binding issues).
     */
    readonly ModifyPanelCanClose: () => boolean;
    /** Entities displayed in EntityListComponent — set by loadData(). */
    Entities: AccessibleEntity[];
    IsLoadingEntities: boolean;
    LoadError: string | null;
    /** Whether the Create Wizard drawer is open. */
    ShowCreateWizard: boolean;
    /** ID of the entity currently being modified; null if panel is closed. */
    ModifyEntityId: string | null;
    /** ID to deep-link into on first load (from ?entity= query param). */
    private _deepLinkEntityId;
    GetResourceDisplayName(_data: ResourceData): Promise<string>;
    /** Sync ?entity=<id> URL param; set initial slide-panel state. */
    protected initDashboard(): void;
    /** Load accessible entities from the engine's cached store. */
    protected loadData(): Promise<void>;
    /** Opens the Create Wizard drawer. */
    OnNewEntity(): void;
    /** Opens the Modify panel for an existing entity. */
    OnEditEntity(entity: AccessibleEntity): void;
    /** Opens the Modify panel (read-only view) for an existing entity. */
    OnViewEntity(entity: AccessibleEntity): void;
    /** Called when the Create Wizard drawer closes (cancel or success). */
    OnWizardClosed(): void;
    /** Called when the wizard successfully creates an entity. */
    OnEntityCreated(): void;
    /** Called when the Modify panel drawer closes. */
    OnModifyPanelClosed(): void;
    /** Called when the modify wizard successfully alters an entity. */
    OnEntityModified(): void;
    /**
     * React to ?entity= changes that arrive after initial load — e.g. clicking a Home pin
     * for a specific entity, or browser back/forward — when this tab is re-focused rather
     * than freshly mounted (so initDashboard() does not run again). Without this, the modify
     * panel would not open for the pinned/linked entity. (initDashboard handles the very
     * first load via _deepLinkEntityId.)
     */
    protected OnQueryParamsChanged(params: Record<string, string>, _source: 'popstate' | 'deeplink'): void;
    private openModifyPanel;
    static ɵfac: i0.ɵɵFactoryDeclaration<DatabaseDesignerDashboardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DatabaseDesignerDashboardComponent, "mj-database-designer-dashboard", never, {}, {}, never, never, false, never>;
}
/** Tree-shaking prevention — called from module's public-api.ts. */
export declare function LoadDatabaseDesignerDashboard(): void;
//# sourceMappingURL=database-designer-dashboard.component.d.ts.map