import { type AccessContext, type PersonalResourceAttachmentIntent, type ResourceAuthorityScope, type SendMessageInput, type Session, type Workspace } from "@opengeni/sdk"; import type { OpenGeniBrowserClient } from "@opengeni/sdk/browser"; import type { AuthSession } from "../types.js"; import type { ManagedSelfContext } from "./managed-self-context.js"; import { personalSelection, type FixedPersonalResources, type PersonalAttachmentMode, type PersonalResourceCatalog } from "./personal-resource-attachments.js"; type PersonalResourceAttachmentAttempt = { personalResourceAttachment?: PersonalResourceAttachmentIntent | undefined; }; export type PersonalResourceNotice = "source_changed" | "reloading" | "reload_failed" | "reloaded"; export type PersonalResourceAttachmentController = Readonly<{ eligible: boolean; loading: boolean; refreshing: boolean; error: Error | null; notice: PersonalResourceNotice | null; sourceLost: boolean; truncated: boolean; catalog: PersonalResourceCatalog | null; selected: ReturnType; mode: PersonalAttachmentMode | null; visibility: "private" | "workspace"; requiresDecision: boolean; intent: PersonalResourceAttachmentIntent | undefined; refresh: () => Promise; onAccepted: (input: SendMessageInput | { personalResourceAttachment?: PersonalResourceAttachmentIntent | undefined; }) => void; onDeliveryError: (error: Error, input: PersonalResourceAttachmentAttempt, delivery: "send" | "steer" | "create") => void; }>; /** * Resolve the ordinary catalog scope for an already-fixed session Rig without * importing the broad @opengeni/react root into the direct-session route. * Failure stays unknown: only a positive `user` classification may turn the * optional Personal catalog into submission UI. */ export declare function useFixedRigScope(client: OpenGeniBrowserClient, workspaceId: string | null, rigId: string | null, enabled?: boolean): ResourceAuthorityScope | null; export declare function usePersonalResourceAttachment(input: { client: OpenGeniBrowserClient; authMode: string; authSession: AuthSession | null; accessSubjectId: string; accessContext: AccessContext | null; managedSelfContext: ManagedSelfContext | null; workspace: Pick | null; session?: Pick | null | undefined; fixed: FixedPersonalResources; personalWorkspaceTarget: boolean; createVisibility?: "private" | "workspace" | undefined; enabled?: boolean | undefined; onReloadSession?: (() => Promise) | undefined; }): PersonalResourceAttachmentController; export {};