import { type IUiGranteeAsyncOption, type IUiGranteeAsyncOptions } from "../UiGranteeAsyncPicker/UiGranteeAsyncPicker.js";
/**
 * @internal
 */
export interface IUiTransferOwnershipDialogCardProps {
    /** Object title shown in the header — wrapped into `Transfer ownership of "\{title\}"`. */
    objectTitle: string;
    /**
     * Loader for the user search. Owner is always an individual user, so the
     * caller returns users only — any `groups` it carries are ignored here.
     */
    loadOptions: (search: string) => Promise<IUiGranteeAsyncOptions>;
    /**
     * The picked new owner, or undefined before one is chosen. Single select:
     * picking another user from the search replaces this one.
     */
    selectedOwner: IUiGranteeAsyncOption | undefined;
    /** Fires when the user picks someone from the search dropdown. */
    onSelectedOwnerChange: (owner: IUiGranteeAsyncOption) => void;
    /** Whether "Also remove my access" is checked. */
    alsoRemoveMyAccess: boolean;
    onAlsoRemoveMyAccessChange: (next: boolean) => void;
    /** Fires when the user clicks the header back-arrow button. */
    onBack: () => void;
    /** Fires when the user clicks the header X close button. */
    onClose: () => void;
    /** Fires when the user clicks Cancel in the footer. */
    onCancel: () => void;
    /**
     * Fires when the user confirms the transfer. The Transfer button is disabled
     * until an owner is picked, and while a transfer is in flight.
     */
    onTransfer: () => void;
    /** Whether a transfer write is in flight; disables the Transfer button. */
    isSaving?: boolean;
    /** Test id forwarded to the root element. */
    dataTestId?: string;
}
/**
 * Transfer-ownership dialog card — header + single-user search picker + the
 * picked owner row (with an "Owner" tag) + an "Also remove my access" checkbox
 * and an informational note, then a footer with Cancel and Transfer. Renders
 * inline as a plain card; for modal behavior use `UiTransferOwnershipDialog`.
 *
 * The card owns the visual composition but no policy. The caller controls the
 * picked owner via `selectedOwner` / `onSelectedOwnerChange`, decides whether
 * that owner is already an owner, and performs the actual transfer on
 * `onTransfer`.
 *
 * @internal
 */
export declare function UiTransferOwnershipDialogCard({ objectTitle, loadOptions, selectedOwner, onSelectedOwnerChange, alsoRemoveMyAccess, onAlsoRemoveMyAccessChange, onBack, onClose, onCancel, onTransfer, isSaving, dataTestId }: IUiTransferOwnershipDialogCardProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=UiTransferOwnershipDialogCard.d.ts.map