import * as React from "react" ; import { Plugin } from "@webiny/plugins/types" ; import { ApolloClient } from "apollo-client" ; import { CSSProperties } from "react" ; export type WebinyInitPlugin = Plugin & { type : "webiny-init" ; init ( ) : void ; } ; export type UploadOptions = { apolloClient : ApolloClient < object > ; } ; export type UiStatePlugin = Plugin & { type : "ui-state" ; render ( ) : React . ReactElement ; } ; export type FileUploaderPlugin = Plugin & { type : "file-uploader" ; upload ( file , options ) : Promise < any > ; } ; export type AppFileManagerStoragePlugin = Plugin & { type : "app-file-manager-storage" ; upload ( file , options ) : Promise < any > ; } ; export { Plugin } ; export type ImageProps = { src : string ; preset ? : string ; transform ? : { [ key ] : any ; } ; srcSet ? : { [ key ] : any ; } | "auto" ; className ? : string ; title ? : string ; alt ? : string ; style ? : CSSProperties ; } ; /**
 * "getImageSrc" has to be defined as a separate property, so its functionality can be reused outside of
 * the Image component. This is ideal in cases where manual creation of image src is needed.
 */ export type ImageComponentPlugin = Plugin & { type : "image-component" ; render : ( props : ImageProps ) => React . ReactElement ; getImageSrc : ( props ? : Object ) => string ; presets : { [ key ] : any ; } ; } ; see https export type RoutePlugin = Plugin & { type : "route" ; route : React . ReactElement ; } ; export type CacheGetObjectIdPlugin = Plugin & { type : "cache-get-object-id" ; getObjectId ( obj ) : string | undefined ; } ;