import type { WorkspaceArtifact } from "@opengeni/sdk"; /** * What a person may do with a Site and the controls for it: its publication, * its audience and archiving. The Site page and the workbench share it. */ export declare function useSiteManagement({ workspaceId, siteId, artifact, onArtifactChanged, onStatusChanged, }: { workspaceId: string; siteId: string; /** null while the Site loads. */ artifact: WorkspaceArtifact | null; onArtifactChanged: (artifact: WorkspaceArtifact) => void; /** After archiving or restoring, to read the Site again. */ onStatusChanged: () => Promise | void; }): { canPublish: boolean; isAdmin: boolean; manageData: boolean; workspaceName: string; showAudience: boolean; publication: { load: import("../../lib/site-publishing.js").SitePublicationLoad; reload: () => Promise; setPublication: (publication: import("@opengeni/contracts").SitePublication) => void; }; audience: import("./site-audience.js").AudienceControls; statusBusy: boolean; setSiteStatus: (status: "active" | "archived") => Promise; }; export type SiteManagement = ReturnType; /** Whether a Site has anything in Settings for this person. */ export declare function hasSiteSettings(management: SiteManagement): boolean; /** * The Site's settings: Publish to web (its address, who can open it, its * agent and limits), who in the workspace can see it, and archiving. * The audience dialog is the caller's, as it is shared with the page header. */ export declare function SiteSettings({ workspaceId, artifact, management, openCopy, }: { workspaceId: string; artifact: WorkspaceArtifact; management: SiteManagement; /** Whether a duplicate opens on its own page; the workbench keeps the person in the session. */ openCopy?: boolean | undefined; }): import("react").JSX.Element;