import type { AstroGlobalPartial, SSRResult } from '../../@types/astro';
export { createMetadata } from './metadata.js';
export type { Metadata } from './metadata';
export declare class AstroComponent {
    private htmlParts;
    private expressions;
    constructor(htmlParts: TemplateStringsArray, expressions: any[]);
    get [Symbol.toStringTag](): string;
    [Symbol.iterator](): Generator<Promise<any>, void, unknown>;
}
export declare function render(htmlParts: TemplateStringsArray, ...expressions: any[]): Promise<AstroComponent>;
export interface AstroComponentFactory {
    (result: any, props: any, slots: any): ReturnType<typeof render>;
    isAstroComponentFactory?: boolean;
}
export declare function createComponent(cb: AstroComponentFactory): AstroComponentFactory;
export declare function renderSlot(_result: any, slotted: string, fallback?: any): Promise<any>;
export declare const Fragment: unique symbol;
export declare function renderComponent(result: SSRResult, displayName: string, Component: unknown, _props: Record<string | number, any>, slots?: any): Promise<any>;
export declare function createAstro(filePathname: string, site: string, projectRootStr: string): AstroGlobalPartial;
export declare function addAttribute(value: any, key: string): string;
export declare function spreadAttributes(values: Record<any, any>): string;
export declare function defineStyleVars(selector: string, vars: Record<any, any>): string;
export declare function defineScriptVars(vars: Record<any, any>): string;
export declare function renderToString(result: SSRResult, componentFactory: AstroComponentFactory, props: any, children: any): Promise<string>;
export declare function renderPage(result: SSRResult, Component: AstroComponentFactory, props: any, children: any): Promise<string>;
export declare function renderAstroComponent(component: InstanceType<typeof AstroComponent>): Promise<string>;
