import type { ProductSchema, BaseFieldSchemas, MediaSchema } from '@byondrnd/showroom-schemas';
import type { IProduct, ICatalogFieldsMapping, IFacet } from '../app/EventSystem/EventTypes';
import type { CollectionSchema } from '@byondrnd/showroom-schemas';
export declare type ProductMediaTypes = 'frontal_image' | 'right_image' | 'back_image' | 'left_image' | 'additional_images';
export declare function isImageMediaType(type: ProductMediaTypes): boolean;
export declare function isImageMedia(productMedia: BaseFieldSchemas.BaseProductMediaFieldSchema.IBaseProductMediaField): boolean;
export declare function GetMediaByType(product: ProductSchema.IProduct, type: ProductMediaTypes): MediaSchema.IMedia | undefined;
export declare const GetFrontMediaUrl: (product: ProductSchema.IProduct) => string;
export declare function getCustomField(product: ProductSchema.IProduct, key: string | undefined): string | number | Array<any> | undefined;
export declare function getCustomMediaUrl(product: ProductSchema.IProduct, key: string): string | undefined;
export declare function getCustomMediaField(product: ProductSchema.IProduct, key: string): MediaSchema.IMedia | undefined;
export declare function getProductApplication(product: ProductSchema.IProduct): string;
export declare function getProductFacets(product: ProductSchema.IProduct): IFacet[];
export declare function getProductPrice(product: ProductSchema.IProduct): string;
export declare function getProductFormatField(product: ProductSchema.IProduct, field: string): string;
export declare function getApplicationsFromCustomFields(cOrP: ProductSchema.IProduct | CollectionSchema.ICatalog | undefined): string[];
export declare function formatProduct({ application, product, fieldsMap, }: {
    application: string;
    product: ProductSchema.IProduct;
    fieldsMap?: ICatalogFieldsMapping;
}): IProduct;
