/**
 * Parse slot content from component children.
 *
 * Extracts:
 * - Default slot content (anything not in a template#name)
 * - Named slots from <template #name> or <template v-slot:name>
 * - Scoped slot bindings from <template #name="{ props }">
 */
export declare function parseSlots(childContent: string): ParsedSlots;
/**
 * Parse slot props from a slot element.
 *
 * Parses: <slot name="row" :item="item" :index="index" />
 * Returns: { name: 'row', props: { item: 'item', index: 'index' } }
 */
export declare function parseSlotElement(slotTag: string): {
  name: string
  props: Record<string, string>
  defaultContent: string
};
/**
 * Render a slot with its content and props.
 *
 * @param slotDef - The slot definition from the parent
 * @param slotProps - Props passed from the child's <slot :prop="value">
 * @param defaultContent - Default content if no slot provided
 * @param context - The current template context
 */
export declare function renderSlot(slotDef: SlotDefinition | undefined, slotProps: SlotProps, defaultContent: string, context: Record<string, unknown>): Promise<string>;
/**
 * Process all slots in a component template.
 *
 * Replaces <slot> elements with the appropriate content from parsed slots.
 */
export declare function processSlots(template: string, parsedSlots: ParsedSlots, context: Record<string, unknown>): Promise<string>;
/**
 * Extract named slots from component children content.
 * This is called when processing a component to separate slot content.
 */
export declare function extractSlotContent(childContent: string): {
  defaultSlot: string
  namedSlots: Map<string, SlotDefinition>
};
/**
 * Apply slots to a component template.
 * This replaces <slot> elements with the provided slot content.
 */
export declare function applySlots(componentTemplate: string, defaultSlotContent: string, namedSlots: Map<string, SlotDefinition>, context: Record<string, unknown>): Promise<string>;
// =============================================================================
// Types
// =============================================================================
export declare interface SlotDefinition {
  name: string
  content: string
  propsBinding?: string
}
export declare interface SlotProps {
  [key: string]: unknown
}
export declare interface ParsedSlots {
  default: string
  named: Map<string, SlotDefinition>
}
