import { Channel } from "../channel/Channel";
import { Template } from "../template";
/**
 * Represents an Experience entity in the system.
 * An Experience is a container for various fields that define its characteristics.
 */
export interface Experience {
    /** Unique identifier for the experience */
    id: string;
    /** Channels associated with the experience */
    channels?: Channel[];
    /** Collection of experience fields stored as key-value pairs */
    experienceFields: Record<string, ExperienceField>;
    /** Template associated with the experience */
    template?: Template;
    /** Metadata associated with the experience */
    metadata?: ExperienceMetadata;
}
/**
 * Represents a field within an Experience.
 * Each field contains a name and corresponding value.
 */
export interface ExperienceField {
    /** Name of the experience field */
    fieldName: string;
    /** Value associated with the experience field */
    fieldValue: string;
    /** Keywords for the experience field */
    keywords?: string[];
    /** Additional metadata for the experience field */
    additionalMetadata?: Record<string, any>;
}
/**
 * Metadata associated with an Experience.
 */
export type ExperienceMetadata = {
    locale?: string;
    [key: string]: any;
};
/**
 * Payload describing a single field update to apply on the canvas.
 */
export type FieldUpdate = {
    /** ID of the experience containing the field to update */
    experienceId: string;
    /** Name of the field to update (matches fieldName key) */
    name: string;
    /** The new value to write into the field */
    value: string;
};
