import { EntityPermissionType, EntitySaveOptions } from '@memberjunction/core';
import { MJDashboardPermissionEntity } from '../../generated/entity_subclasses.js';
/**
 * Extended Dashboard Permission entity. Adds two behaviors on top of the
 * generated base:
 *
 *  1. **CheckPermissions override** — grantor and dashboard owner can always
 *     Update/Delete their own grant. Without this, UI/Developer users can't
 *     revoke their own shares because neither role has `CanDelete` on
 *     `MJ: Dashboard Permissions`. The owner fallback also covers the
 *     `SharedByUserID IS NULL` legacy case.
 *
 *  2. **Save override** — notifies the grantee via the shared `CreateShareNotification`
 *     pipeline so `NotificationEngine` honors their in-app / email / SMS
 *     preferences uniformly.
 */
export declare class MJDashboardPermissionEntityExtended extends MJDashboardPermissionEntity {
    CheckPermissions(type: EntityPermissionType, throwError: boolean): boolean;
    Save(options?: EntitySaveOptions): Promise<boolean>;
    private isDashboardOwner;
    /**
     * Authorization for CREATING a new DashboardPermission row. Matches the
     * `MJResourcePermissionEntityExtended.callerMayGrantShare` pattern:
     * caller is either the dashboard owner, or holds an existing DashboardPermission
     * on the same dashboard with `CanShare=true`.
     */
    private callerMayShareDashboard;
    private actionsSummary;
}
/** Tree-shaking prevention — referenced from the custom/Permissions barrel. */
export declare function LoadMJDashboardPermissionEntityExtended(): void;
//# sourceMappingURL=MJDashboardPermissionEntityExtended.d.ts.map