///
import { DekApi } from './api';
export type DekPluginElementProps = Record & {
plugin: T;
api: DekApi;
};
export type DekPluginElementFactoryWithProps = (props: DekPluginElementProps) => JSX.Element;
export type DekPluginSchemaItemOption = {
value: string;
label?: string;
};
export type DekPluginSchemaType = 'string' | 'number' | 'boolean' | 'list' | 'color' | 'object' | 'styles' | 'command' | 'items';
export type DekPluginSchemaItem = {
type: DekPluginSchemaType;
title?: string;
default?: any;
options?: DekPluginSchemaItemOption[];
min?: number;
max?: number;
schema?: DekPluginSchema;
};
export type DekPluginSchema = Record;
export type DekPluginComponentItem = {
key: string;
description?: string;
isCommand?: boolean;
element: DekPluginElementFactoryWithProps;
schema?: DekPluginSchema;
};
export type DekPluginScreenItem = {
path: string;
description?: string;
element: DekPluginElementFactoryWithProps;
};
export type DekPluginBoardItem = {
key: string;
element: DekPluginElementFactoryWithProps;
};
export type DekPluginConfig = Record;
export type DekPlugin = {
load?: (api: DekApi) => Promise;
unload?: () => Promise;
components?: DekPluginComponentItem[];
screens?: DekPluginScreenItem[];
boards?: DekPluginBoardItem[];
api?: any;
};
export declare class DekPluginFactory implements DekPlugin {
}
export type DekIntegration = DekPlugin;