import { IMetadataProvider } from '@memberjunction/core';
import { MJUserEntity } from '@memberjunction/core-entities';
import { ResourceShareAdapter, ResourceShareContext, ResourceSharePermissionModel } from '@memberjunction/ng-resource-permissions';
/**
 * Bridges {@link GenericShareDialogComponent} to the dashboard permission model.
 * `MJ: Dashboard Permissions` stores four independent `Can*` booleans; we fold
 * them into the dialog's three-tier `Level` enum and fan back out on save:
 *
 *   View  → CanRead only
 *   Edit  → CanRead + CanEdit
 *   Owner → CanRead + CanEdit + CanDelete + CanShare
 *
 * Refreshes the {@link DashboardEngine} cache after save so downstream
 * consumers see the new grants immediately.
 */
export declare class DashboardShareAdapter implements ResourceShareAdapter {
    private _provider;
    get Provider(): IMetadataProvider;
    set Provider(value: IMetadataProvider | null);
    LoadShares(context: ResourceShareContext): Promise<ResourceSharePermissionModel[]>;
    CreateShare(context: ResourceShareContext, user: MJUserEntity): Promise<ResourceSharePermissionModel>;
    SyncLevelToEntity(row: ResourceSharePermissionModel): void;
    AfterSave(_context: ResourceShareContext): Promise<void>;
    /** Resolve the owner's display name for a dashboard by owner user ID. */
    static resolveOwnerName(ownerUserID: string | null | undefined): string | null;
    private flagsToLevel;
    private applyLevelToPermission;
}
//# sourceMappingURL=dashboard-share-adapter.d.ts.map