import { Channel } from "../channel/Channel";
/**
 * Metadata describing a variant's size and aspect ratio.
 */
export type VariantMetadata = {
    /** Variant width in pixels */
    width: number;
    /** Variant height in pixels */
    height: number;
    /** Optional aspect ratio identifier */
    knownAspectRatio?: string;
};
/**
 * A single field value within a variant.
 */
export type VariantField = {
    /** Field value as a string */
    value: string;
    /** Optional role name for the field */
    roleName?: string;
    /** Optional role type for the field, either selection or generation */
    roleType?: string;
    /** Optional metadata for the field */
    metadata?: Record<string, any>;
};
/**
 * A variant contains fields and optional metadata.
 */
export type Variant = {
    /** Optional metadata describing the variant */
    metadata?: VariantMetadata;
    /** Field values keyed by field name */
    fields: Record<string, VariantField>;
};
/**
 * Experience model that includes variants and metadata.
 */
export type ExperienceWithVariant = {
    /** Unique identifier for the experience */
    id: string;
    /** Channels associated with the experience */
    channels?: Channel[];
    /** Metadata for the experience */
    metadata: {
        /** Basic info about the experience */
        experienceInfo: {
            title: string;
        };
        /** Channels applicable to the experience */
        channels: string[];
    };
    /** Variants keyed by variant ID */
    variants: Record<string, Variant>;
};
