import type { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
import type { IamPolicy } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/api_pb";
/** Props for {@link GrantAccessForm}. */
export interface GrantAccessFormProps {
    /** Resource kind being granted access to. Determines which roles appear. */
    readonly resourceKind: ApiResourceKind;
    /** Resource kind string (e.g. "organization") for the API resource ref. */
    readonly resourceKindString: string;
    /** ID of the resource being granted access to. */
    readonly resourceId: string;
    /**
     * Organization whose members can be granted access. Drives the
     * {@link PrincipalPicker} typeahead.
     */
    readonly orgId: string;
    /** Principal IDs that already have access (shown disabled in the picker). */
    readonly excludePrincipalIds?: readonly string[];
    /** Fired after a policy is successfully created. */
    readonly onGranted?: (policy: IamPolicy) => void;
    /** Fired when the user cancels. */
    readonly onCancel?: () => void;
    /** Additional CSS class names for the root container. */
    readonly className?: string;
}
/**
 * Form for granting an organization member access to a resource.
 *
 * Lets the user pick a **person** from the org's member list (by name or
 * email, disambiguating identity sources) via {@link PrincipalPicker}, choose
 * a **role** from the resource's grantable roles, and creates the IAM policy
 * binding. The resolved `identity_account` ID is carried internally — the user
 * never types or sees raw account IDs.
 *
 * All visual properties flow through `--stgm-*` design tokens.
 *
 * @example
 * ```tsx
 * <GrantAccessForm
 *   resourceKind={ApiResourceKind.organization}
 *   resourceKindString="organization"
 *   resourceId="org-abc123"
 *   orgId="org-abc123"
 *   onGranted={(policy) => refetchAccessList()}
 *   onCancel={() => setShowForm(false)}
 * />
 * ```
 */
export declare function GrantAccessForm({ resourceKind, resourceKindString, resourceId, orgId, excludePrincipalIds, onGranted, onCancel, className, }: GrantAccessFormProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=GrantAccessForm.d.ts.map