import { IFile, TModuleComponentType, ModuleEngineType, INote } from '@wix/quix-shared'; import { App } from '../../lib/app'; interface CustomAction { icon: string; title: string; permissions: string; handler(note: INote): INote; } export declare const resolvePluginType: (type: TModuleComponentType) => typeof NotePlugin | typeof DbPlugin; export declare class Plugin { protected readonly id: string; protected readonly engine: ModuleEngineType; constructor(app: App, id: string, engine: ModuleEngineType, hooks: any); getId(): string; getEngine(): ModuleEngineType; } export declare class NotePlugin extends Plugin { private readonly config; constructor(app: App, id: string, engine: ModuleEngineType, hooks: any, config: { syntaxValidation: boolean; canCreate: boolean; dateFormat?: string; enableQueryFormatter?: boolean; }); getConfig(): { syntaxValidation: boolean; canCreate: boolean; dateFormat?: string; enableQueryFormatter?: boolean; }; formatStats(stats: { [key: string]: any; }): any[]; renderRunner(): string; getCustomActions(): CustomAction[]; } export declare class DbPlugin extends Plugin { constructor(app: App, id: string, engine: ModuleEngineType, hooks: any); getSampleQuery(table: IFile): string; } export declare const PluginMap: { note: typeof NotePlugin; db: typeof DbPlugin; }; export type TPluginMap = { [K in keyof typeof PluginMap]: InstanceType; }; export {};