import { PluginOption } from 'vite';
import { Options } from '@vitejs/plugin-react';

interface RakkasAdapter {
    name: string;
    bundle?(root: string): Promise<void>;
    disableStreaming?: boolean;
}

interface RakkasOptions {
    /** Options passed to @vite/plugin-react */
    react?: Options;
    /** File extensions for pages and layouts @default ["jsx","tsx"] */
    pageExtensions?: string[];
    /**
     * Paths to start crawling when prerendering static pages.
     * `true` is the same as `["/"]` and `false` is the same as `[]`.
     * @default false
     */
    prerender?: string[] | boolean;
    /** Whether to enable strict mode in dev. @default true */
    strictMode?: boolean;
    /** Platform adapter */
    adapter?: "node" | "cloudflare-workers" | "vercel" | "vercel-edge" | "netlify" | "netlify-edge" | "deno" | "bun" | "lagon" | RakkasAdapter;
}
declare function rakkas(options?: RakkasOptions): PluginOption[];

export { RakkasOptions, rakkas as default };
