import { EventEmitter } from '@angular/core';
import { MJDashboardEntity } from '@memberjunction/core-entities';
import { ResourceShareContext, ResourceShareDialogResult } from '@memberjunction/ng-resource-permissions';
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
import { DashboardShareAdapter } from './dashboard-share-adapter';
import * as i0 from "@angular/core";
/**
 * Public re-export kept for backward compatibility with existing call sites
 * ({@link DashboardBrowserResourceComponent}, `DashboardResource` wrapper).
 * The new abstraction lives in `@memberjunction/ng-resource-permissions`.
 */
export type ShareDialogResult = ResourceShareDialogResult & {
    Dashboard?: MJDashboardEntity;
};
/**
 * Thin wrapper that maps a `MJDashboardEntity` + the Dashboard-specific
 * permission model onto the generic `mj-resource-share-dialog`. Existing call
 * sites (`<mj-dashboard-share-dialog [Dashboard]=... [Visible]=... (Result)=... />`)
 * continue to work unchanged — this component just constructs the context +
 * adapter and delegates.
 */
export declare class DashboardShareDialogComponent extends BaseAngularComponent {
    Visible: boolean;
    set Dashboard(value: MJDashboardEntity | null);
    get Dashboard(): MJDashboardEntity | null;
    Result: EventEmitter<ShareDialogResult>;
    context: ResourceShareContext | null;
    adapter: DashboardShareAdapter;
    private _dashboard;
    constructor();
    onResult(result: ResourceShareDialogResult): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DashboardShareDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DashboardShareDialogComponent, "mj-dashboard-share-dialog", never, { "Visible": { "alias": "Visible"; "required": false; }; "Dashboard": { "alias": "Dashboard"; "required": false; }; }, { "Result": "Result"; }, never, never, false, never>;
}
//# sourceMappingURL=dashboard-share-dialog.component.d.ts.map