import {RawSourceMap} from 'source-map' export type CompilerOptions = { template?: string file?: string scopedCss?: boolean } export type CompilerOutput = { code: string map: RawSourceMap } export type CompilerOutputFragments = { template: object css: object javascript: object } export type PreProcessorOutput = { code: string, map?: RawSourceMap } export type PreProcessorMeta = { tagName: string, fragments: CompilerOutputFragments, options: CompilerOptions, source: string } export type ProcessorFunction = (code: string, meta: PreProcessorMeta) => PreProcessorOutput export type PreProcessorsMap = { template: Map javascript: Map css: Map } export type PostProcessorsMap = Map export type PreProcessorType = 'template' | 'javascript' | 'css' // public API export function generateTemplateFunctionFromString(source: string, parserOptions: any): string export function generateSlotsFromString(source: string, parserOptions: any): string export function compile(source: string, options?: CompilerOptions): CompilerOutput export function registerPreprocessor( type: PreProcessorType, name: string, fn: ProcessorFunction ): PreProcessorsMap export function registerPostprocessor(fn: ProcessorFunction): PostProcessorsMap