import { ParseOptions, ParseResult } from '@astrojs/compiler'; import * as AstroUtils from '@astrojs/compiler/utils'; import MagicString from 'magic-string'; import { MagicSFCOptions, MagicSFC as MagicSFC$1, MagicBlock } from './index.mjs'; import { SFCBlock } from 'vue/compiler-sfc'; type AstroParseFunction = (source: string, options: ParseOptions) => Promise; interface MagicAstroSFCOptions extends MagicSFCOptions { parser?: AstroParseFunction; parserUtils?: typeof AstroUtils; parserOptions?: ParseOptions; silent?: boolean; } declare const magicAstroSfcOptions: MagicAstroSFCOptions; declare class MagicSFC extends MagicSFC$1 { options: MagicAstroSFCOptions; templates: MagicBlock[]; scripts: MagicBlock[]; styles: MagicBlock[]; customs: MagicBlock[]; constructor(source: string | MagicString, userOptions?: T, defaultOptions?: MagicAstroSFCOptions); parse(): Promise>; } interface WriteableSFCBlock extends Partial { content?: string; src?: string; [key: string]: any; } interface WriteableDescriptor { templates?: WriteableSFCBlock[]; scripts?: WriteableSFCBlock[]; styles?: WriteableSFCBlock[]; } interface CreateAstroSFCOptions extends Partial { } declare function createBlock(block: WriteableSFCBlock, blockType: keyof WriteableDescriptor): string; declare function createSFC(options?: CreateAstroSFCOptions): MagicSFC; export { type MagicAstroSFCOptions, MagicSFC, createBlock, createSFC, magicAstroSfcOptions };