/** * Image reference schema — the canonical triple-mode input shape used by * every MCP tool that accepts a source image. * * Per ADR-004: * - uploadId: already uploaded to Firefly via firefly_upload_image * - url: pre-signed URL on caller-controlled storage (S3, Azure, GCS, Dropbox) * - path: local filesystem path; the tool will auto-upload before the SDK call * * Exactly one of the three MUST be set. Validation enforces this. * * Security: the `url` field is restricted to HTTPS URLs whose host matches * the Adobe-published allowlist of cloud storage providers. IP literals, * `localhost`, file://, ftp://, http:// are all rejected. The allowlist * is exported so a future ADR can extend it without forking this schema. */ import { z } from "zod"; /** * Domains allowed in image-ref URLs. Each entry is a domain suffix matched * against the URL host with a leading "." or as an exact match. Drawn from * the Firefly Services public docs ("Public storage" section) and audit H2. * * Exported so future ADRs / tools can extend without forking this schema. */ export declare const ALLOWED_IMAGE_URL_HOSTS: readonly string[]; /** * Validate a URL string against the Firefly Services image-ref policy. * Returns true if allowed. Exported for tests. */ export declare function isAllowedImageUrl(raw: string): boolean; export declare const imageRefSchema: z.ZodEffects; uploadId: z.ZodOptional; url: z.ZodOptional>; path: z.ZodOptional; }, "strip", z.ZodTypeAny, { url?: string | undefined; path?: string | undefined; upload_id?: string | undefined; uploadId?: string | undefined; }, { url?: string | undefined; path?: string | undefined; upload_id?: string | undefined; uploadId?: string | undefined; }>, { uploadId: string | undefined; url: string | undefined; path: string | undefined; }, { url?: string | undefined; path?: string | undefined; upload_id?: string | undefined; uploadId?: string | undefined; }>, { uploadId: string | undefined; url: string | undefined; path: string | undefined; }, { url?: string | undefined; path?: string | undefined; upload_id?: string | undefined; uploadId?: string | undefined; }>; export type ImageRef = z.infer; //# sourceMappingURL=image-ref.d.ts.map