23 lines
1.4 KiB
TypeScript
23 lines
1.4 KiB
TypeScript
![]() |
import type { SSRResult } from '../../../@types/astro.js';
|
||
|
import type { renderTemplate } from './astro/render-template.js';
|
||
|
import type { RenderInstruction } from './types.js';
|
||
|
import { HTMLString } from '../escape.js';
|
||
|
type RenderTemplateResult = ReturnType<typeof renderTemplate>;
|
||
|
export type ComponentSlots = Record<string, ComponentSlotValue>;
|
||
|
export type ComponentSlotValue = (result: SSRResult) => RenderTemplateResult | Promise<RenderTemplateResult>;
|
||
|
declare const slotString: unique symbol;
|
||
|
export declare class SlotString extends HTMLString {
|
||
|
instructions: null | RenderInstruction[];
|
||
|
[slotString]: boolean;
|
||
|
constructor(content: string, instructions: null | RenderInstruction[]);
|
||
|
}
|
||
|
export declare function isSlotString(str: string): str is any;
|
||
|
export declare function renderSlot(result: SSRResult, slotted: ComponentSlotValue | RenderTemplateResult, fallback?: ComponentSlotValue | RenderTemplateResult): AsyncGenerator<any, void, undefined>;
|
||
|
export declare function renderSlotToString(result: SSRResult, slotted: ComponentSlotValue | RenderTemplateResult, fallback?: ComponentSlotValue | RenderTemplateResult): Promise<string>;
|
||
|
interface RenderSlotsResult {
|
||
|
slotInstructions: null | RenderInstruction[];
|
||
|
children: Record<string, string>;
|
||
|
}
|
||
|
export declare function renderSlots(result: SSRResult, slots?: ComponentSlots): Promise<RenderSlotsResult>;
|
||
|
export {};
|