import * as react_jsx_runtime from 'react/jsx-runtime';
import * as React from 'react';

/**
 * Library access role for shared hubs. Mirrors
 * `apps/web/lib/collaborator-access.ts > CollaboratorAccessRole` — kept
 * structurally identical so the apps/web type and this type are mutually
 * assignable wherever consumers pass collaborator rosters to `PageHeader`.
 */
type PageHeaderCollaboratorAccessRole = "owner" | "editor" | "commenter" | "viewer";
type PageHeaderVariant = "default" | "collaboration";
interface PageHeaderCollaborator {
    id: string;
    name: string;
    imageUrl?: string | null;
    initials?: string;
    email?: string;
    access?: PageHeaderCollaboratorAccessRole;
    /** Org / directory role tags (e.g. Faculty, Program coordinator). */
    roles?: string[];
}
interface PageHeaderProps {
    /** Primary page title — rendered as `<h1>` in Ivy Presto serif. */
    title: string;
    /** Short descriptor or date shown below the title (and below `accessInfo` when set). */
    subtitle?: React.ReactNode;
    /** Layout preset — `collaboration` enables access line + face row ahead of `actions`. */
    variant?: PageHeaderVariant;
    /**
     * Role / access copy or badges — rendered between the title and subtitle
     * when `variant="collaboration"` (e.g. lock icon + "Editors can modify").
     */
    accessInfo?: React.ReactNode;
    /** People with access — shown as a horizontal row of faces when `variant="collaboration"`. */
    collaborators?: PageHeaderCollaborator[];
    /** Max faces before a `+N` chip — default 3. */
    collaboratorDisplayLimit?: number;
    /** Opens the invite collaborators sheet when a face, overflow chip, or empty-state CTA is activated. */
    onCollaboratorsOpen?: () => void;
    /** Label for the empty-roster header control — default `"Add collaborator"`. */
    addCollaboratorLabel?: string;
    /** Optional slot for right-aligned actions (buttons, selectors, etc.). */
    actions?: React.ReactNode;
    /** Extra className for the outer wrapper. */
    className?: string;
    /** When false, the title + subtitle are visually hidden (actions remain). */
    showTitleBlock?: boolean;
}
declare function PageHeader({ title, subtitle, variant, accessInfo, collaborators, collaboratorDisplayLimit, onCollaboratorsOpen, addCollaboratorLabel, actions, className, showTitleBlock, }: PageHeaderProps): react_jsx_runtime.JSX.Element;

export { PageHeader, type PageHeaderCollaborator, type PageHeaderCollaboratorAccessRole, type PageHeaderProps, type PageHeaderVariant };
