/** Canonical wire contracts. Synced into the separately released MCP package. */ import { z } from "zod"; export declare const SOCIAL_FORMATS: readonly ["og", "x_post", "instagram_story", "instagram_post", "x_header", "linkedin_banner", "play_store_feature", "app_store_event_card", "app_store_event_details", "ad_banner", "ad_mobile_banner", "ad_tablet_banner_720", "ad_tablet_banner_728", "ad_mrec", "ad_phone_portrait", "ad_phone_landscape", "ad_fullscreen_landscape", "ad_tablet_portrait", "ad_tablet_landscape"]; export type SocialFormat = (typeof SOCIAL_FORMATS)[number]; export type JsonObject = Record; export declare const projectListItemSchema: z.ZodObject<{ id: z.ZodString; name: z.ZodString; platform: z.ZodOptional; category: z.ZodOptional; updatedAt: z.ZodOptional; iconUrl: z.ZodOptional; projectUrl: z.ZodString; }, z.core.$strip>; export declare const projectListSchema: z.ZodObject<{ projects: z.ZodArray; category: z.ZodOptional; updatedAt: z.ZodOptional; iconUrl: z.ZodOptional; projectUrl: z.ZodString; }, z.core.$strip>>; }, z.core.$strip>; export type ProjectListItem = z.infer; export declare const assetKindSchema: z.ZodEnum<{ screenshots: "screenshots"; appIcon: "appIcon"; recordings: "recordings"; illustrations: "illustrations"; backgrounds: "backgrounds"; panoramas: "panoramas"; fonts: "fonts"; promoMedia: "promoMedia"; }>; export declare const assetListItemSchema: z.ZodObject<{ path: z.ZodString; name: z.ZodString; kind: z.ZodEnum<{ screenshots: "screenshots"; appIcon: "appIcon"; recordings: "recordings"; illustrations: "illustrations"; backgrounds: "backgrounds"; panoramas: "panoramas"; fonts: "fonts"; promoMedia: "promoMedia"; }>; mediaType: z.ZodEnum<{ image: "image"; video: "video"; audio: "audio"; font: "font"; }>; deviceType: z.ZodOptional>; platform: z.ZodOptional>; previewUrl: z.ZodOptional; }, z.core.$strip>; export declare const assetListSchema: z.ZodObject<{ projectId: z.ZodString; assets: z.ZodArray; mediaType: z.ZodEnum<{ image: "image"; video: "video"; audio: "audio"; font: "font"; }>; deviceType: z.ZodOptional>; platform: z.ZodOptional>; previewUrl: z.ZodOptional; }, z.core.$strip>>; truncated: z.ZodBoolean; }, z.core.$strip>; export type AssetListItem = z.infer; export type AssetList = z.infer; export type AssetKind = z.infer; export declare const projectIdField: z.ZodString; export declare const operationIdField: z.ZodString; export declare const editTargetFields: { variantId: z.ZodString; expectedRevision: z.ZodString; }; export declare const editLanguageField: z.ZodString; export declare const selectionFields: { operationId: z.ZodString; catalogKey: z.ZodString; templateId: z.ZodString; paletteMode: z.ZodDefault>; }; export declare const screenshotSelectionApiSchema: z.ZodObject<{ generationId: z.ZodString; replaceVariantId: z.ZodOptional; operationId: z.ZodString; catalogKey: z.ZodString; templateId: z.ZodString; paletteMode: z.ZodDefault>; }, z.core.$strict>; export declare const socialSelectionApiSchema: z.ZodObject<{ generationId: z.ZodString; replaceVariantId: z.ZodOptional; operationId: z.ZodString; catalogKey: z.ZodString; templateId: z.ZodString; paletteMode: z.ZodDefault>; primaryFormat: z.ZodEnum<{ og: "og"; x_post: "x_post"; instagram_story: "instagram_story"; instagram_post: "instagram_post"; x_header: "x_header"; linkedin_banner: "linkedin_banner"; play_store_feature: "play_store_feature"; app_store_event_card: "app_store_event_card"; app_store_event_details: "app_store_event_details"; ad_banner: "ad_banner"; ad_mobile_banner: "ad_mobile_banner"; ad_tablet_banner_720: "ad_tablet_banner_720"; ad_tablet_banner_728: "ad_tablet_banner_728"; ad_mrec: "ad_mrec"; ad_phone_portrait: "ad_phone_portrait"; ad_phone_landscape: "ad_phone_landscape"; ad_fullscreen_landscape: "ad_fullscreen_landscape"; ad_tablet_portrait: "ad_tablet_portrait"; ad_tablet_landscape: "ad_tablet_landscape"; }>; }, z.core.$strict>; export declare const screenshotSelectionSchema: z.ZodObject<{ operationId: z.ZodString; catalogKey: z.ZodString; templateId: z.ZodString; paletteMode: z.ZodDefault>; projectId: z.ZodString; }, z.core.$strict>; export declare const socialSelectionSchema: z.ZodObject<{ operationId: z.ZodString; catalogKey: z.ZodString; templateId: z.ZodString; paletteMode: z.ZodDefault>; projectId: z.ZodString; primaryFormat: z.ZodDefault>; }, z.core.$strict>; export declare const promoCandidateSelectionSchema: z.ZodObject<{ projectId: z.ZodString; operationId: z.ZodString; candidateKey: z.ZodString; candidateId: z.ZodString; replaceVariantId: z.ZodOptional; }, z.core.$strict>; export declare const promoSelectionApiSchema: z.ZodObject<{ projectId: z.ZodString; operationId: z.ZodString; replaceVariantId: z.ZodOptional; candidateKey: z.ZodOptional; candidateId: z.ZodOptional; config: z.ZodOptional>; label: z.ZodOptional; }, z.core.$strict>; export type ScreenshotSelectionRequest = z.input; export type SocialSelectionRequest = z.input; export type ScreenshotToolSelectionRequest = z.input; export type SocialToolSelectionRequest = z.input; export type PromoCandidateSelectionRequest = z.input; export interface SelectionResponse { variantId: string; } export interface ScreenshotSelectionResponse extends SelectionResponse { detectedLanguage: string; mobileLayout: unknown; tabletLayout: unknown; desktopLayout: unknown; } export interface SocialSelectionResponse extends SelectionResponse { sourceLanguage: string; language: string; availableLanguages: string[]; socialTemplateId: string; socialPrimaryFormat: SocialFormat; graphics: Array<{ format: SocialFormat; layout: unknown; }>; } export interface PreparedCatalog { catalogKey: string; cacheHit?: boolean; templatePayloads: Record; } export interface PreparedPromoCandidates { candidateKey: string; candidates: Array<{ id: string; title: string; explanation: string; durationInFrames: number; config: JsonObject; }>; } export interface TemplateSummary { id: string; name: string; description?: string; categories?: string[]; screenCount?: number; } export declare const MAX_ASSET_UPLOAD_BYTES: number; export declare function assetUploadTypes(kind: AssetKind): Record; export declare function assetUploadAccept(kind: AssetKind): string; export declare const assetUploadRequestSchema: z.ZodObject<{ projectId: z.ZodString; kind: z.ZodEnum<{ screenshots: "screenshots"; appIcon: "appIcon"; recordings: "recordings"; illustrations: "illustrations"; backgrounds: "backgrounds"; panoramas: "panoramas"; fonts: "fonts"; promoMedia: "promoMedia"; }>; filename: z.ZodString; sizeBytes: z.ZodNumber; contentType: z.ZodString; deviceType: z.ZodOptional>; platform: z.ZodOptional>; }, z.core.$strip>; export type AssetUploadRequest = z.infer; type AssetUploadMetadata = { projectId: string; filename: string; contentType: string; deviceType?: AssetUploadRequest["deviceType"]; platform?: AssetUploadRequest["platform"]; fileType?: "logo" | "mockup-media" | "illustration" | "background" | "panorama" | "font" | "promo-media"; }; /** The same category/extension validation runs before the chooser upload and on the MCP server. */ export declare function assetUploadMetadata(value: AssetUploadRequest): AssetUploadMetadata; export declare const assetUploadGrantSchema: z.ZodObject<{ projectId: z.ZodString; path: z.ZodString; uploadUrl: z.ZodString; }, z.core.$strip>; export type AssetUploadGrant = z.infer; /** No arbitrary destinations, credentials or another project's storage objects. */ export declare function validateAssetUploadGrant(value: unknown, request: AssetUploadRequest, localOrigin?: string): AssetUploadGrant; export {};