import { z } from 'zod'; import type { Screen } from '../../generated/src/screen.js'; /** * File extensions supported by BatchCreateScreens and their MIME types. * The check is done in the handler (not as a Zod refinement) so failures * produce a typed UploadImageErrorCode instead of a generic ZodError. */ export declare const SUPPORTED_MIME_TYPES: { readonly '.png': "image/png"; readonly '.jpg': "image/jpeg"; readonly '.jpeg': "image/jpeg"; readonly '.webp': "image/webp"; readonly '.html': "text/html"; readonly '.htm': "text/html"; }; export type SupportedExtension = keyof typeof SUPPORTED_MIME_TYPES; export declare const UploadInputSchema: z.ZodObject<{ filePath: z.ZodString; title: z.ZodOptional; createScreenInstances: z.ZodDefault; }, z.core.$strip>; export type UploadInput = z.infer; export declare const UploadErrorCode: z.ZodEnum<{ AUTH_FAILED: "AUTH_FAILED"; UNKNOWN_ERROR: "UNKNOWN_ERROR"; FILE_NOT_FOUND: "FILE_NOT_FOUND"; UNSUPPORTED_FORMAT: "UNSUPPORTED_FORMAT"; UPLOAD_FAILED: "UPLOAD_FAILED"; }>; export type UploadErrorCode = z.infer; export type UploadResult = { success: true; screens: Screen[]; } | { success: false; error: { code: UploadErrorCode; message: string; recoverable: boolean; }; }; /** * Contract for the upload operation. * Implementations must never throw — all failures return UploadResult. */ export interface UploadSpec { execute(projectId: string, input: UploadInput): Promise; } //# sourceMappingURL=upload.d.ts.map