import type { z } from "zod"; import type { AttachmentFileSchema, AttachmentsSchema } from "../../core/csl-json/types.js"; /** * Attachment file metadata stored in reference's custom field. * Derived from AttachmentFileSchema (Zod) to ensure single source of truth. */ export type AttachmentFile = z.infer; /** * Attachments container stored in reference's custom.attachments field. * Derived from AttachmentsSchema (Zod) to ensure single source of truth. */ export type Attachments = z.infer; /** * Reserved role identifiers with special constraints */ export declare const RESERVED_ROLES: readonly ["fulltext", "supplement", "notes", "draft", "archive"]; export type ReservedRole = (typeof RESERVED_ROLES)[number]; /** * Check if a role is a reserved role */ export declare function isReservedRole(role: string): role is ReservedRole; /** * Get file extension from filename (without leading dot) */ export declare function getExtension(filename: string): string; /** * Check if fulltext files satisfy the constraint: max 2 files (1 PDF + 1 Markdown) */ export declare function isValidFulltextFiles(files: AttachmentFile[]): boolean; /** * Check if archive files satisfy the constraint: max 1 file */ export declare function isValidArchiveFiles(files: AttachmentFile[]): boolean; //# sourceMappingURL=types.d.ts.map