import { InternalConfig, NormalizedConvertedTokens } from '@sugarcube-org/core'; export { SugarcubeConfig, defineConfig } from '@sugarcube-org/core'; import { ViteDevServer, Logger, Plugin } from 'vite'; /** CSS object for UnoCSS rules - matches @unocss/core CSSObject */ type CSSObject = Record; /** UnoCSS dynamic rule: [pattern, handler] */ type UnoRule = [RegExp, (match: RegExpMatchArray) => CSSObject]; interface SugarcubePluginContext { ready: Promise; config: InternalConfig | null; tokens: NormalizedConvertedTokens | null; getCSS: () => string; reloadConfig: () => Promise; reloadTokens: () => Promise; getRules: () => UnoRule[]; getTokenDirs: () => string[]; invalidate: (server: ViteDevServer) => void; onReload: (fn: () => void) => void; tasks: Promise[]; flushTasks: () => Promise; setLogger: (logger: Logger) => void; } interface SugarcubePluginOptions { unoPresets?: T[]; unoTheme?: Record; } declare function sugarcubePlugin(options?: SugarcubePluginOptions): Promise; export { type SugarcubePluginContext, sugarcubePlugin as default };