import { Ctx } from '../ctx/base'; import { Icon } from '../icon'; export type AssetSourcesHook = { /** * Use this function to declare additional sources to be shown when users want * to upload new assets * * @tag assetSources */ assetSources: (ctx: AssetSourcesCtx) => AssetSource[] | undefined; }; export type AssetSourcesCtx = Ctx; /** * An object expressing an additional asset source * * @see {isAssetSource} */ export type AssetSource = { /** * ID of the asset source. Will be the first argument for the * `renderAssetSource` function */ id: string; /** Name of the asset that will be shown to the user */ name: string; /** * Icon to be shown alongside the name. Can be a FontAwesome icon name (ie. * `"address-book"`) or a custom SVG definition. To maintain visual * consistency with the rest of the interface, try to use FontAwesome icons * whenever possible. */ icon: Icon; /** * Configuration options for the modal that will be opened to select a media * file from this source */ modal?: { /** Width of the modal. Can be a number, or one of the predefined sizes */ width?: 's' | 'm' | 'l' | 'xl' | number; /** * The initial height to set for the iframe that will render the modal * content */ initialHeight?: number; }; }; export declare function isAssetSource(value: unknown): value is AssetSource; export declare function isReturnTypeOfAssetSourcesHook(value: unknown): value is AssetSource[] | undefined;