import { type ToolDef } from './registry.js'; type ContentType = 'image/png' | 'image/jpeg' | 'image/webp' | 'image/svg+xml'; /** * Content type from magic bytes, or undefined. * * The bytes are authoritative — a declared content type (or a URL's extension, * or a server's Content-Type header) is a claim, and the presigned PUT is signed * against whatever we declare at initiate. Getting that wrong fails the PUT with * an opaque S3 signature error, so sniff rather than trust. */ export declare function sniffContentType(bytes: Uint8Array): ContentType | undefined; /** * True when the payload is an SVG document. * * SVG has no magic-byte signature — it is XML — so it is sniffed from the head of * the document instead, tolerating a BOM, an XML declaration and a DOCTYPE. */ export declare function looksLikeSvg(bytes: Uint8Array): boolean; /** Refuse anything that is not a routable public address. */ export declare function isBlockedAddress(ip: string): boolean; export declare const uploadDesign: ToolDef<{ source_url?: string | undefined; image_base64?: string | undefined; image_uuid?: string | undefined; filename?: string | undefined; title?: string | undefined; content_type?: "image/png" | "image/jpeg" | "image/webp" | "image/svg+xml" | undefined; upscale?: "auto" | "pixel" | "smooth" | undefined; workspace?: string | undefined; }, Record>; declare function guessFilename(sourceUrl: string, contentType: ContentType): string; export declare const uploadTools: ToolDef[]; export declare const __test: { sniffContentType: typeof sniffContentType; looksLikeSvg: typeof looksLikeSvg; isBlockedAddress: typeof isBlockedAddress; guessFilename: typeof guessFilename; }; export {};