/**
 * Pure helpers for how artifact content is stored and unwrapped across the
 * upload, gather, and resolver paths. Living in MJCoreEntities so both the
 * server-side entity hook (MJConversationDetailAttachmentEntityServer) and
 * the agent runtime (AgentRunner.gatherConversationArtifacts) share a single
 * source of truth — and so they're unit-testable without mounting either
 * the entity stack or the agent runtime.
 */
/**
 * Returns true when bytes for this MIME should be stored as raw UTF-8 text
 * (so artifact tool libraries can JSON.parse / split-by-line directly).
 * Returns false for binary types whose tools work with the data-URL wrapper
 * or a FileID reference.
 */
export declare function IsTextyMime(mime: string): boolean;
/**
 * Decides how to store inline content on the paired ArtifactVersion for a
 * given MIME + base64 InlineData input. Text-y MIMEs get decoded to UTF-8
 * so artifact tool libraries can parse directly; binary MIMEs keep the
 * `data:<mime>;base64,…` wrapper so the resolver can recognize media for
 * inline routing and the gather path can re-decode to a Buffer for binary
 * tool libraries (xlsx, docx, pdf).
 */
export declare function DecideInlineStorage(mime: string, inlineData: string | null | undefined): {
    contentMode: 'Text';
    content: string;
};
/**
 * Builds the user-facing error string returned when an attachment's MIME
 * isn't registered with any ArtifactType.
 */
export declare function BuildUnregisteredMimeError(fileName: string | null | undefined, _mime: string): string;
/**
 * Decodes a `data:<mime>;base64,<payload>` URL into a raw Buffer when the
 * input matches that shape. Returns the input unchanged otherwise. Used by
 * the AgentRunner gather path so binary tool libraries (xlsx, docx, pdf)
 * receive a parseable Buffer instead of the wrapped data URL string.
 */
export declare function ExtractBase64FromDataUrl(input: string): string | Buffer;
//# sourceMappingURL=artifact-content-storage.d.ts.map