import { type AccessGranularPermission } from "@gooddata/sdk-model";
import { type IUiLabelsChecklistItem } from "../UiLabelsChecklist/UiLabelsChecklist.js";
import { type PermissionMenuLevel } from "../UiPermissionMenu/UiPermissionMenu.js";
/**
 * @internal
 */
export interface IUiGranteeRowControlsProps {
    /** Locked items are always treated as selected. */
    labels: ReadonlyArray<IUiLabelsChecklistItem>;
    selectedLabelIds: ReadonlyArray<string>;
    /** The level to display. `EDIT` renders read-only; VIEW/SHARE are selectable. */
    permissionLevel: AccessGranularPermission;
    /**
     * Set only when the grantee inherits a higher permission than `permissionLevel`
     * (e.g. from a group); drives the warning badge. Undefined when not elevated.
     */
    effectivePermission?: AccessGranularPermission;
    onLabelsChange: (selectedIds: string[]) => void;
    /** Fires only for selectable rows (VIEW/SHARE); EDIT rows have no level control. */
    onPermissionChange: (level: PermissionMenuLevel) => void;
    onTransferOwnership?: () => void;
    onRemoveAccess?: () => void;
    /** Disables both triggers, e.g. while the row's change is saving. */
    isDisabled?: boolean;
    dataTestId?: string;
}
/**
 * Per-row controls in the OLP share dialog: a permission trigger
 * ({@link UiPermissionMenu}) plus a "⋯" menu ({@link UiMoreOptionsMenu}) for
 * labels access and Transfer ownership, with an optional inherited-permission
 * warning badge.
 *
 * @internal
 */
export declare function UiGranteeRowControls({ labels, selectedLabelIds, permissionLevel, effectivePermission, onLabelsChange, onPermissionChange, onTransferOwnership, onRemoveAccess, isDisabled, dataTestId }: IUiGranteeRowControlsProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=UiGranteeRowControls.d.ts.map