import { SylPlugin, SylUnionPlugin } from '../schema'; declare namespace Types { type noop = () => void; interface StringMap { [index: string]: T; } type ValueOf = T extends Array ? T[number] : T[keyof T]; interface IRangeStatic { index: number; length: number; } interface BoundingStatic { left: number; top: number; right: number; bottom: number; } interface Ctor { new (...props: any[]): Instance; } interface DeepArray extends Array> { } } interface ISylPluginProps { controllerProps?: Types.StringMap; layers?: Types.StringMap; } interface IConfigPluginObj { plugin: ISylPlugin; controllerProps?: Types.StringMap; layers?: Types.StringMap<(props: any) => any>; } declare type ISylPlugin = typeof SylPlugin | typeof SylUnionPlugin | Plugin | SylPlugin | SylUnionPlugin; declare type ISylPluginConfig = ISylPlugin | IConfigPluginObj; export { IConfigPluginObj, ISylPluginConfig, ISylPluginProps, Types };