import { DefineComponent, Directive } from 'vue'; export interface I18nPlugin { locale: string; t: (key: string, value: string) => string; } export interface StashProvideState { components?: Record; directives?: Record; i18n?: I18nPlugin; images: StashOptionImages; storage?: unknown; staticPath: string; googleMapsApiKey?: string; } export enum StashImageProvider { Static = 'static', Cloudinary = 'cloudinary', } /** * Image */ export type StashImageProviders = `${StashImageProvider}`; export interface StashOptionImages { provider: StashImageProviders; } /** * For controlling properties like "padding" and "margin" within and between components. */ export enum SpacingDensity { Compact = 'compact', Comfortable = 'comfortable', } export type SpacingDensities = `${SpacingDensity}`;