import type { ApiResourceRefView } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/io_pb";
/** A principal selected through {@link PrincipalPicker}. */
export interface SelectedPrincipal {
    /** identity_account ID (`ida_...`). */
    readonly id: string;
    /** Display name (falls back to email, then ID). */
    readonly name: string;
    /** Email address, if known. */
    readonly email: string;
    /** Full view for richer rendering (avatar, provider). */
    readonly view: ApiResourceRefView;
}
/** Props for {@link PrincipalPicker}. */
export interface PrincipalPickerProps {
    /** Organization whose members are selectable. */
    readonly orgId: string;
    /** Currently selected principal, or `null`. Controlled. */
    readonly value: SelectedPrincipal | null;
    /** Fired when the selection changes. */
    readonly onChange: (principal: SelectedPrincipal | null) => void;
    /** Principal IDs to hide/disable because they already have access. */
    readonly excludePrincipalIds?: readonly string[];
    /** Disable the control. */
    readonly disabled?: boolean;
    /** Additional CSS class names for the root container. */
    readonly className?: string;
}
/**
 * Accessible combobox for picking an organization member to share with.
 *
 * Replaces raw account-ID entry: users type a name or email and choose a
 * person from the org's member list. Because email is not unique across
 * identity sources, each candidate shows a {@link ProviderBadge} so accounts
 * that share an email (e.g. a direct account and a federated one) can be told
 * apart. The resolved `identity_account` ID is carried internally — the user
 * never sees it.
 *
 * Members who already have access are shown disabled, so the same person is
 * not granted twice.
 *
 * Search is over the org member list the caller can already see
 * (`listResourceAccessByPrincipal` on the organization), so it introduces no
 * new account-enumeration surface.
 *
 * All visual properties flow through `--stgm-*` design tokens.
 */
export declare function PrincipalPicker({ orgId, value, onChange, excludePrincipalIds, disabled, className, }: PrincipalPickerProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=PrincipalPicker.d.ts.map