export interface IRawSiteConfig { plugins?: Array; } export interface ISiteConfig extends IRawSiteConfig { plugins?: Array; } export interface IPluginInfo { /** Unique ID describing a plugin */ id: string; /** The absolute path to the plugin */ resolve: string; /** The absolute path to the compiled plugin's gatsby-node module, if there is one */ resolvedCompiledGatsbyNode?: string; /** The plugin name */ name: string; /** The plugin version (can be content hash) */ version: string; /** Options passed to the plugin */ pluginOptions?: IPluginInfoOptions; subPluginPaths?: Array; module?: any; modulePath?: string; } export interface IPluginInfoOptions { plugins?: Array; path?: string; [option: string]: unknown; } export interface IFlattenedPlugin extends IPluginInfo { skipSSR?: boolean; ssrAPIs: Array; nodeAPIs: Array; browserAPIs: Array; } export interface IPluginRefObject { resolve: string; options?: IPluginRefOptions; parentDir?: string; subPluginPaths?: Array; module?: any; modulePath?: string; } export type PluginRef = string | IPluginRefObject; export interface IPluginRefOptions { plugins?: Array; path?: string; [option: string]: unknown; }