import { Field } from "./pageModel";
export type TextField = Field & {
    value: string;
};
export type PictureField = Field & {
    value: PictureValue | null;
};
export type LinkField = Field & {
    value: LinkValue;
};
export type InternalLinkField = Field & {
    value: LinkValue;
};
export type PictureValue = {
    name: string;
    alt: string;
    variants: PictureVariant[];
    loopVideos: boolean;
    allowVideos?: boolean;
    error?: string;
};
export type PictureVariant = {
    mediaItemName: string;
    name: string;
    src: string;
    videoUrl?: string;
    width: number;
    height: number;
    aspectRatio: number;
    aspectRatioLock?: number;
    aspectRatioLockText?: string;
    minWidth?: number;
    minHeight?: number;
    thumbSrc?: string;
    originalSrc?: string;
    mediaId?: string;
    idPath?: string;
    region: PictureRegion;
};
export type PictureRegion = {
    x: number;
    y: number;
    width: number;
    height: number;
};
export type PictureRawValue = {
    Variants: PictureRawVariant[];
    AltText?: string;
};
export type PictureRawVariant = {
    Name: string;
    MediaId?: string;
    VideoId?: string;
    Region?: PictureRawRegion;
};
export type PictureRawRegion = {
    X: number;
    Y: number;
    Width: number;
    Height: number;
};
export type ImageField = Field & {
    value: ImageValue | null;
};
export type ImageValue = {
    alt: string;
    src: string;
    idPath?: string;
};
export type LinkValue = {
    url: string;
    type: "internal" | "external";
    target?: string;
    targetItemLongId?: string;
    targetItemName?: string;
    queryString?: string;
    targetItemId?: string;
    text?: string;
};
export interface KeyValuePair {
    key: string;
    value: string;
}
export type EnhancedNameValueListField = Field & {
    value: KeyValuePair[];
};
export type ReferencedItem = {
    id: string;
    name: string;
    path: string;
    icon?: string;
    idPath?: string;
};
export type TreeListField = Field & {
    value: ReferencedItem[];
    _editor: {
        customEditorProperties: {
            datasources: string[];
        };
    };
};
export type CheckboxField = Field & {
    value: boolean;
};
export type DateField = Field & {
    value: DateFieldValue;
};
export type DateFieldValue = {
    date: string;
};
export type DateTimeField = Field & {
    value: DateTimeFieldValue;
};
export type DateTimeFieldValue = {
    date: string;
};
export type NumberField = Field & {
    value: number;
};
export type AttachmentField = Field & {
    value: AttachmentValue;
};
export type AttachmentValue = {
    src: string;
    fileName?: string;
    extension?: string;
    mimeType?: string;
    idPath?: string;
};
