export type FileReferenceScope = 'workspace' | 'external' | 'agent-profile' | 'session-artifact' | 'missing' | 'invalid'; /** Where an off-workspace file lives (UI badge + manage deep link). */ export type FileReferenceLocationKind = 'agent-profile' | 'xopc-skills' | 'xopc-config' | 'xopc-agents' | 'xopc-sessions' | 'host'; export type FileReferenceCapability = 'preview' | 'edit' | 'openExternal' | 'revealInFolder' | 'copyPath' | 'importToWorkspace'; export interface RegisteredFileReference { id: string; absolutePath: string; sessionKey?: string; scope: FileReferenceScope; locationKind?: FileReferenceLocationKind; capabilities: FileReferenceCapability[]; expiresAt: number; } export interface RegisterFileReferenceInput { absolutePath: string; sessionKey?: string; scope: FileReferenceScope; locationKind?: FileReferenceLocationKind; capabilities: FileReferenceCapability[]; ttlMs?: number; } export declare class FileReferenceRegistry { private readonly refs; register(input: RegisterFileReferenceInput): RegisteredFileReference; resolve(id: string): RegisteredFileReference | null; /** * Remove a specific reference (used after a one-shot action like * import-to-workspace completes so the source card can't be re-triggered). * Returns true if the reference existed and was removed. */ expireById(id: string): boolean; expire(now?: number): void; } export declare const fileReferenceRegistry: FileReferenceRegistry;