import * as React from 'react';
import { StackProps } from '@mui/material/Stack';
import { IPermissionLevel, IShareConfig, IOrgOption } from '../../model';
export type IOrgShareConfig = {
    /**
     * If true, the org-level permissions panel will be visible
     */
    visible?: boolean;
    /**
     * If true, the org-level permissions will be editable
     */
    editable?: boolean;
    /**
     * If true, the org-level permissions will be disabled
     */
    disabled?: boolean;
    /**
     * The tooltip message if the org-level permissions disabled
     */
    disabledMessage?: string;
    /**
     * The available permission levels that can be selected.
     */
    permissionLevels?: ReadonlyArray<IPermissionLevel>;
    /**
     * The current permission level for the entire organization
     */
    permissionLevel?: string;
    /**
     * Callback function triggered when the permission level of the group is updated.
     */
    onPermissionChange?: (permission: string) => void;
    /**
     * The organizations the current user belongs to
     */
    orgOptions?: ReadonlyArray<IOrgOption>;
    /**
     * The value of the selected organization
     */
    selectedOrg?: string;
    /**
     * Callback function triggered when the organization selection changed.
     */
    onOrgChange?: (org: string) => void;
};
export type IOrgShare = {
    /**
     * The configuration properties for the organization-level permission panel
     *
     * ```
     *
     * export type IPermissionLevel = {
     *    value: string;
     *    label: string;
     * };
     * export type IOrgShareConfig = {
     *     orgName?: string;
     *     visible?: boolean;
     *     editable?: boolean;
     *     permissionLevels?: IPermissionLevel[];
     *     permissionLevel?: string;
     *     onPermissionChange?: (permission: string) => void;
     *     orgOptions?: ReadonlyArray<IOrgOption>;
     *     selectedOrg?: string;
     *     onOrgChange?: (org: string) => void;
     * }
     * ```
     */
    orgShareConfig?: IOrgShareConfig;
    /**
     * Value to determine whether the screen is mobile.
     *
     */
    isMobile?: boolean;
    /**
     * Callback function triggered when the permission action si clicked, only available when screen size smaller than sm.
     */
    onShowBottomSheet?: (shareConfig: IShareConfig) => void;
};
export declare const OrgShare: React.FC<IOrgShare & StackProps>;
