import { SFCParseOptions, SFCParseResult, SFCTemplateBlock, SFCScriptBlock, SFCBlock, SFCStyleBlock } from 'vue/compiler-sfc'; import MagicString from 'magic-string'; import { MagicSFCOptions, MagicSFC as MagicSFC$1, MagicBlock } from './index.js'; type VueParseFunction = (source: string, { sourceMap, filename, sourceRoot, pad, ignoreEmpty, compiler }?: SFCParseOptions) => SFCParseResult; interface MagicVueSFCOptions extends MagicSFCOptions { parser?: VueParseFunction; parserOptions?: SFCParseOptions; silent?: boolean; } declare const magicVueSfcOptions: MagicVueSFCOptions; declare class MagicSFC extends MagicSFC$1 { options: MagicVueSFCOptions; parsed?: SFCParseResult; templates: MagicBlock[]; scripts: MagicBlock[]; styles: MagicBlock[]; constructor(source: string | MagicString, userOptions?: T, defaultOptions?: MagicVueSFCOptions); parse(): Promise>; } interface WriteableSFCBlock extends Partial { content?: string; attrs?: Record; lang?: string; src?: string; [key: string]: any; } interface WriteableDescriptor { templates?: WriteableSFCBlock[]; scripts?: WriteableSFCBlock[]; styles?: WriteableSFCBlock[]; customs?: WriteableSFCBlock[]; } interface CreateVueSFCOptions extends Partial { } declare function createBlock(block: WriteableSFCBlock, blockType: keyof WriteableDescriptor): string; declare function createSFC(options?: CreateVueSFCOptions): MagicSFC; export { MagicSFC, type MagicVueSFCOptions, createBlock, createSFC, magicVueSfcOptions };