/* tslint:disable */
/* eslint-disable */

/**
 * WASM Compiler instance
 */
export class Compiler {
    free(): void;
    [Symbol.dispose](): void;
    /**
     * Compile template to VDom render function
     */
    compile(template: string, options: any): any;
    /**
     * Compile CSS with LightningCSS
     */
    compileCss(css: string, options: any): any;
    /**
     * Compile SFC template block
     */
    compileSfc(source: string, options: any): any;
    /**
     * Compile template to Vapor mode
     */
    compileVapor(template: string, options: any): any;
    constructor();
    /**
     * Parse template to AST
     */
    parse(template: string, _options: any): any;
    /**
     * Parse CSS into a serialized LightningCSS AST.
     */
    parseCssAst(css: string, options: any): any;
    /**
     * Parse SFC (.vue file)
     */
    parseSfc(source: string, options: any): any;
    /**
     * Print CSS from a serialized LightningCSS AST.
     */
    printCssAst(ast: any, options: any): any;
}

/**
 * Analyze multiple Vue SFC files for cross-file issues
 */
export function analyzeCrossFile(files: any, options: any): any;

/**
 * Analyze Vue SFC for semantic information (scopes, bindings, etc.)
 */
export function analyzeSfc(source: string, options: any): any;

/**
 * Transform Art to Storybook CSF 3.0
 */
export function artToCsf(source: string, options: any): any;

export function buildInspectorDiff(left: string, right: string): any;

export function buildInspectorGraph(files: any): any;

/**
 * Compile template to VDom (free function)
 */
export function compile(template: string, options: any): any;

/**
 * Compile CSS (free function)
 */
export function compileCss(css: string, options: any): any;

/**
 * Compile SFC (free function)
 */
export function compileSfc(source: string, options: any): any;

/**
 * Compile template to Vapor mode (free function)
 */
export function compileVapor(template: string, options: any): any;

/**
 * Format JavaScript/TypeScript content
 */
export function formatScript(source: string, options: any): any;

/**
 * Format Vue SFC file
 */
export function formatSfc(source: string, options: any): any;

/**
 * Format Vue template content
 */
export function formatTemplate(source: string, options: any): any;

/**
 * Generate catalog from multiple Art sources
 */
export function generateArtCatalog(sources: Array<any>, options: any): any;

/**
 * Generate component documentation from Art source
 */
export function generateArtDoc(source: string, options: any): any;

/**
 * Generate props palette from Art source
 */
export function generateArtPalette(source: string, options: any): any;

/**
 * Get available lint rules
 */
export function getLintRules(): any;

/**
 * Get available locales for i18n
 */
export function getLocales(): any;

/**
 * Get type checking capabilities info
 */
export function getTypeCheckCapabilities(): any;

/**
 * Lint Vue SFC file (full SFC including script)
 */
export function lintSfc(source: string, options: any): any;

/**
 * Lint Vue SFC template
 */
export function lintTemplate(source: string, options: any): any;

/**
 * Parse Art file (*.art.vue)
 */
export function parseArt(source: string, options: any): any;

/**
 * Parse CSS to AST (free function)
 */
export function parseCssAst(css: string, options: any): any;

/**
 * Parse SFC (free function)
 */
export function parseSfc(source: string, options: any): any;

/**
 * Parse template to AST (free function)
 */
export function parseTemplate(template: string, options: any): any;

/**
 * Print CSS from AST (free function)
 */
export function printCssAst(ast: any, options: any): any;

/**
 * Perform type checking on a Vue SFC
 *
 * This performs AST-based type analysis without requiring a TypeScript compiler.
 * For full type checking, use the CLI with Corsa integration.
 */
export function typeCheck(source: string, options: any): any;

export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;

export interface InitOutput {
    readonly memory: WebAssembly.Memory;
    readonly __wbg_compiler_free: (a: number, b: number) => void;
    readonly analyzeCrossFile: (a: any, b: any) => [number, number, number];
    readonly analyzeSfc: (a: number, b: number, c: any) => [number, number, number];
    readonly artToCsf: (a: number, b: number, c: any) => [number, number, number];
    readonly buildInspectorDiff: (a: number, b: number, c: number, d: number) => [number, number, number];
    readonly buildInspectorGraph: (a: any) => [number, number, number];
    readonly compile: (a: number, b: number, c: any) => [number, number, number];
    readonly compileCss: (a: number, b: number, c: any) => [number, number, number];
    readonly compileSfc: (a: number, b: number, c: any) => [number, number, number];
    readonly compileVapor: (a: number, b: number, c: any) => [number, number, number];
    readonly compiler_compile: (a: number, b: number, c: number, d: any) => [number, number, number];
    readonly compiler_compileCss: (a: number, b: number, c: number, d: any) => [number, number, number];
    readonly compiler_compileSfc: (a: number, b: number, c: number, d: any) => [number, number, number];
    readonly compiler_compileVapor: (a: number, b: number, c: number, d: any) => [number, number, number];
    readonly compiler_parse: (a: number, b: number, c: number, d: any) => [number, number, number];
    readonly compiler_parseCssAst: (a: number, b: number, c: number, d: any) => [number, number, number];
    readonly compiler_parseSfc: (a: number, b: number, c: number, d: any) => [number, number, number];
    readonly compiler_printCssAst: (a: number, b: any, c: any) => [number, number, number];
    readonly formatScript: (a: number, b: number, c: any) => [number, number, number];
    readonly formatSfc: (a: number, b: number, c: any) => [number, number, number];
    readonly formatTemplate: (a: number, b: number, c: any) => [number, number, number];
    readonly generateArtCatalog: (a: any, b: any) => [number, number, number];
    readonly generateArtDoc: (a: number, b: number, c: any) => [number, number, number];
    readonly generateArtPalette: (a: number, b: number, c: any) => [number, number, number];
    readonly getLintRules: () => [number, number, number];
    readonly getLocales: () => [number, number, number];
    readonly getTypeCheckCapabilities: () => [number, number, number];
    readonly lintSfc: (a: number, b: number, c: any) => [number, number, number];
    readonly lintTemplate: (a: number, b: number, c: any) => [number, number, number];
    readonly parseArt: (a: number, b: number, c: any) => [number, number, number];
    readonly parseCssAst: (a: number, b: number, c: any) => [number, number, number];
    readonly parseSfc: (a: number, b: number, c: any) => [number, number, number];
    readonly parseTemplate: (a: number, b: number, c: any) => [number, number, number];
    readonly printCssAst: (a: any, b: any) => [number, number, number];
    readonly typeCheck: (a: number, b: number, c: any) => [number, number, number];
    readonly compiler_new: () => number;
    readonly __wbindgen_malloc: (a: number, b: number) => number;
    readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
    readonly __wbindgen_exn_store: (a: number) => void;
    readonly __externref_table_alloc: () => number;
    readonly __wbindgen_externrefs: WebAssembly.Table;
    readonly __externref_table_dealloc: (a: number) => void;
    readonly __wbindgen_start: () => void;
}

export type SyncInitInput = BufferSource | WebAssembly.Module;

/**
 * Instantiates the given `module`, which can either be bytes or
 * a precompiled `WebAssembly.Module`.
 *
 * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
 *
 * @returns {InitOutput}
 */
export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;

/**
 * If `module_or_path` is {RequestInfo} or {URL}, makes a request and
 * for everything else, calls `WebAssembly.instantiate` directly.
 *
 * @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
 *
 * @returns {Promise<InitOutput>}
 */
export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;
