import { PluginContainerData, Media, Link } from './common.js';
import { GalleryOptions_Layout_Type, GalleryOptions_Layout_Orientation, GalleryOptions_ItemStyle_Crop, GalleryOptions_Thumbnails_Alignment } from './plugin_gallery.enums.js';
export interface GalleryOptions {
    /** Gallery layout. */
    layout?: GalleryOptions_Layout;
    /** Styling for gallery items. */
    item?: GalleryOptions_ItemStyle;
    /** Styling for gallery thumbnail images. */
    thumbnails?: GalleryOptions_Thumbnails;
}
export interface GalleryOptions_Layout {
    /** Gallery layout type. */
    type: GalleryOptions_Layout_Type;
    /** Sets whether horizontal scroll is enabled. Defaults to `true` unless the layout `type` is set to `GRID` or `COLLAGE`. */
    horizontalScroll?: boolean;
    /** Gallery orientation. */
    orientation: GalleryOptions_Layout_Orientation;
    /** The number of columns to display on full size screens. */
    numberOfColumns?: number;
    /** The number of columns to display on mobile screens. */
    mobileNumberOfColumns?: number;
}
export declare function galleryOptions_Layout_TypeFromJSON(object: any): GalleryOptions_Layout_Type;
export declare function galleryOptions_Layout_TypeToJSON(object: GalleryOptions_Layout_Type): string;
export declare function galleryOptions_Layout_OrientationFromJSON(object: any): GalleryOptions_Layout_Orientation;
export declare function galleryOptions_Layout_OrientationToJSON(object: GalleryOptions_Layout_Orientation): string;
export interface GalleryOptions_ItemStyle {
    /** Desirable dimension for each item in pixels (behvaior changes according to gallery type) */
    targetSize?: number;
    /** Item ratio */
    ratio?: number;
    /** Sets how item images are cropped. */
    crop: GalleryOptions_ItemStyle_Crop;
    /** The spacing between items in pixels. */
    spacing?: number;
}
export declare function galleryOptions_ItemStyle_CropFromJSON(object: any): GalleryOptions_ItemStyle_Crop;
export declare function galleryOptions_ItemStyle_CropToJSON(object: GalleryOptions_ItemStyle_Crop): string;
export interface GalleryOptions_Thumbnails {
    /** Thumbnail alignment. */
    placement: GalleryOptions_Thumbnails_Alignment;
    /** Spacing between thumbnails in pixels. */
    spacing?: number;
}
export declare function galleryOptions_Thumbnails_AlignmentFromJSON(object: any): GalleryOptions_Thumbnails_Alignment;
export declare function galleryOptions_Thumbnails_AlignmentToJSON(object: GalleryOptions_Thumbnails_Alignment): string;
export interface GalleryData {
    /** Styling for the gallery's container. */
    containerData?: PluginContainerData;
    /** The items in the gallery. */
    items: GalleryData_Item[];
    /** Options for defining the gallery's appearance. */
    options?: GalleryOptions;
    /** Sets whether the gallery's expand button is disabled. Defaults to `false`. */
    disableExpand?: boolean;
    /** Sets whether the gallery's download button is disabled. Defaults to `false`. */
    disableDownload?: boolean;
}
export interface GalleryData_Item {
    /** An image item. */
    image?: GalleryData_Item_Image | undefined;
    /** A video item. */
    video?: GalleryData_Item_Video | undefined;
    /** Item title. */
    title?: string;
    /** Item's alternative text. */
    altText?: string;
}
export interface GalleryData_Item_Video {
    /** Video file details. */
    media?: Media;
    /** Video thumbnail file details. */
    thumbnail?: Media;
}
export interface GalleryData_Item_Image {
    /** Image file details. */
    media?: Media;
    /** Link details for images that are links. */
    link?: Link;
}
export declare const GalleryOptions: {
    fromJSON(object: any): GalleryOptions;
    toJSON(message: GalleryOptions): unknown;
};
export declare const GalleryOptions_Layout: {
    fromJSON(object: any): GalleryOptions_Layout;
    toJSON(message: GalleryOptions_Layout): unknown;
};
export declare const GalleryOptions_ItemStyle: {
    fromJSON(object: any): GalleryOptions_ItemStyle;
    toJSON(message: GalleryOptions_ItemStyle): unknown;
};
export declare const GalleryOptions_Thumbnails: {
    fromJSON(object: any): GalleryOptions_Thumbnails;
    toJSON(message: GalleryOptions_Thumbnails): unknown;
};
export declare const GalleryData: {
    fromJSON(object: any): GalleryData;
    toJSON(message: GalleryData): unknown;
};
export declare const GalleryData_Item: {
    fromJSON(object: any): GalleryData_Item;
    toJSON(message: GalleryData_Item): unknown;
};
export declare const GalleryData_Item_Video: {
    fromJSON(object: any): GalleryData_Item_Video;
    toJSON(message: GalleryData_Item_Video): unknown;
};
export declare const GalleryData_Item_Image: {
    fromJSON(object: any): GalleryData_Item_Image;
    toJSON(message: GalleryData_Item_Image): unknown;
};
//# sourceMappingURL=plugin_gallery.d.ts.map