import type { AccessResource, AccessVisibility, AccessExtraSection } from "./types.js";
/** Props for {@link ManageAccessButton}. */
export interface ManageAccessButtonProps {
    /** The resource whose access is managed. */
    readonly resource: AccessResource;
    /** General access (visibility) axis; omit for resources without visibility. */
    readonly visibility?: AccessVisibility;
    /** Optional resource-specific section (e.g. run observability). */
    readonly extraSection?: AccessExtraSection;
    /** Button label. @default "Manage access" */
    readonly label?: string;
    /** Additional CSS classes for the trigger button. */
    readonly className?: string;
}
/**
 * The single drop-in, visible trigger for the unified Manage access dialog —
 * used by surfaces that render a button in a header or panel (session and
 * workflow-execution viewers, instance panels) rather than a kebab menu (those
 * use {@link useManageAccess}).
 *
 * Self-gates on `can_view_access`: the button renders only for users who may
 * see the access list, and the dialog's sections gate editing further. Because
 * it lives in the SDK, web and desktop hosts stop re-implementing their own
 * share buttons — one component, every host.
 *
 * All visual properties flow through `--stgm-*` design tokens.
 *
 * @example
 * ```tsx
 * // A session has no visibility axis, so the dialog shows only People.
 * <SessionViewer
 *   sessionId={id}
 *   headerActions={
 *     <ManageAccessButton
 *       resource={{
 *         kind: ApiResourceKind.session,
 *         kindString: "session",
 *         id,
 *         org: orgId,
 *       }}
 *     />
 *   }
 * />
 * ```
 */
export declare function ManageAccessButton({ resource, visibility, extraSection, label, className, }: ManageAccessButtonProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=ManageAccessButton.d.ts.map