import joi from '@winner-fed/utils/compiled/joi'; import zod, { z } from '@winner-fed/utils/compiled/zod'; export declare enum Env { development = "development", production = "production", test = "test" } export declare enum PluginType { preset = "preset", plugin = "plugin" } export interface IPluginConfig { default?: any; schema?: { (joi: joi.Root & { zod: typeof z; }): joi.Schema | zod.Schema; }; onChange?: string | Function; } export declare enum ServiceStage { uninitialized = 0, init = 1, initPresets = 2, initPlugins = 3, resolveConfig = 4, collectAppData = 5, onCheck = 6, onStart = 7, runCommand = 8, onExit = 9 } export declare enum ConfigChangeType { reload = "reload", regenerateTmpFiles = "regenerateTmpFiles" } export type ChangeTypeValue = string | `${ConfigChangeType}` | Function; export type IOnChangeTypes = Record; export declare enum ApplyPluginsType { add = "add", modify = "modify", event = "event" } export declare enum EnableBy { register = "register", config = "config" } export interface IRoute { path: string; absPath: string; file?: string; id: string; parentId?: string; [key: string]: any; } export interface IEvent { (fn: { (args: T): void; }): void; (args: { fn: { (args: T): void; }; name?: string; before?: string | string[]; stage?: number; }): void; } export interface IModify { (fn: { (initialValue: T, args: U): T; }): void; (fn: { (initialValue: T, args: U): Promise; }): void; (args: { fn: { (initialValue: T, args: U): T; }; name?: string; before?: string | string[]; stage?: number; }): void; (args: { fn: { (initialValue: T, args: U): Promise; }; name?: string; before?: string | string[]; stage?: number; }): void; } export interface IAdd { (fn: { (args: T): U | U[]; }): void; (fn: { (args: T): Promise; }): void; (args: { fn: { (args: T): U | U[]; }; name?: string; before?: string | string[]; stage?: number; }): void; (args: { fn: { (args: T): Promise; }; name?: string; before?: string | string[]; stage?: number; }): void; } export type IFrameworkType = 'vue' | 'vue2' | 'react';