import type { SessionAdminAccess } from "@opengeni/sdk"; /** How long admin access lasts, as offered in the app. */ export type AdminAccessDuration = "1" | "8" | "24" | "none"; export declare const ADMIN_ACCESS_DURATIONS: ReadonlyArray<{ value: AdminAccessDuration; label: string; }>; export type SessionAdminAccessControl = { state: SessionAdminAccess; busy: boolean; grant: (duration: AdminAccessDuration) => Promise; revoke: () => void; }; export declare function useSessionAdminAccess(session: { workspaceId: string; id: string; }): SessionAdminAccessControl | null; /** "Ends at 21:30", "Ends tomorrow at 09:00", "Ends Oct 14 at 09:00" or "No time limit". */ export declare function endsText(expiresAt: string | null, now?: Date): string; /** The small shield beside the title while the session has admin access. */ export declare function SessionAdminAccessIndicator({ control, onChangeTimeLimit, }: { control: SessionAdminAccessControl; /** Opens the time limit dialog; shown to the person who can give access. */ onChangeTimeLimit?: (() => void) | undefined; }): import("react").JSX.Element | null; /** Gives this session admin access, or changes how long it lasts while it is on. */ export declare function GrantSessionAdminAccessDialog({ control, open, onOpenChange, }: { control: SessionAdminAccessControl; open: boolean; onOpenChange: (open: boolean) => void; }): import("react").JSX.Element;