import { ReactNode } from 'react';
import { Klass, LexicalCommand, LexicalNode } from 'lexical';
export interface SlashMenuConfig {
    parentKey: string;
    name: string;
    description: string;
    hint?: string;
    keywords: string[];
    icon: ReactNode;
    command: LexicalCommand<string>;
    commandPayload: string;
}
export interface PluginModeConfig {
    comment: boolean;
    default: boolean;
    editor: boolean;
}
export interface PluginConfig {
    key: string;
    node: Klass<LexicalNode>;
    Plugin: React.ComponentType;
    Provider: React.ComponentType<{
        children: ReactNode;
        imperativeHandleRef?: React.RefObject<Record<string, unknown>>;
    }>;
    slashMenu: SlashMenuConfig;
    modes?: PluginModeConfig;
}
export type UploadData = {
    contentType: string;
    fileSize: string;
    originalFileName: string;
};
//# sourceMappingURL=plugin.d.ts.map