import type { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
import { type VisibilityResourceKind } from "./useUpdateVisibility.js";
/** Props for {@link ResourceVisibilityControl}. */
export interface ResourceVisibilityControlProps {
    /** Resource kind, selecting both the updateVisibility RPC and the FGA type. */
    readonly kind: VisibilityResourceKind;
    /** Id of the resource whose visibility is shown/edited. */
    readonly resourceId: string;
    /** Current visibility of the resource. */
    readonly visibility: ApiResourceVisibility;
    /**
     * Slug of the organization that OWNS the resource (`metadata.org`).
     * Used to look up whether the org operates an IdentityProvider, which
     * gates the Platform option for blueprints. When omitted, Platform is
     * simply not offered (the other levels need no org context).
     */
    readonly org?: string;
    /**
     * Called after a successful visibility change so the host can refresh the
     * resource (e.g. `refetch`) and reflect the new state.
     */
    readonly onChanged?: () => void;
    /** Additional CSS classes applied to the root element. */
    readonly className?: string;
}
/**
 * Single source of truth for the resource-visibility control in detail headers.
 *
 * Behavior:
 * - Always renders a legible state: a read-only {@link VisibilityBadge}
 *   (all four levels) is shown to viewers without `can_edit` and while the
 *   permission check is in flight — never a silent blank.
 * - Upgrades to the interactive {@link VisibilitySelector} for users with
 *   `can_edit`, persisting changes via {@link useUpdateVisibility} and invoking
 *   {@link ResourceVisibilityControlProps.onChanged} on success.
 *
 * Offered levels are kind- and context-aware (`visibilityLevels.ts`):
 * - Blueprints (agent/workflow/skill/mcp_server): Private / Organization /
 *   Public, plus Platform when the deployment is `cloud` AND the owning org
 *   operates an IdentityProvider (checked via {@link useSsoProvider}, the
 *   only permission-free IdP lookup — blueprint owners editing visibility
 *   are not necessarily org admins). In `local` mode (OSS Go backend) the
 *   set collapses to Private / Public.
 * - Instances: Private / Organization / Public — platform is excluded by
 *   design to preserve tenant isolation.
 *
 * The backend remains the enforcer (`ValidateVisibilityStep` rejects
 * platform without an IdP); the gate here only prevents offering an option
 * that is guaranteed to fail.
 */
export declare function ResourceVisibilityControl({ kind, resourceId, visibility, org, onChanged, className, }: ResourceVisibilityControlProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=ResourceVisibilityControl.d.ts.map