import type { SSRResult } from '../../@types/astro-runtime';
import type { TopLevelAstro } from '../../@types/astro-runtime';
export { createMetadata } from './metadata.js';
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 function renderComponent(result: SSRResult, displayName: string, Component: unknown, _props: Record<string | number, any>, slots?: any): Promise<string>;
export declare function createAstro(fileURLStr: string, site: string): TopLevelAstro;
export declare function addAttribute(value: any, key: string): string;
export declare function spreadAttributes(values: Record<any, any>): string;
export declare function defineStyleVars(astroId: string, vars: Record<any, any>): string;
export declare function defineScriptVars(vars: Record<any, any>): string;
export declare function renderToString(result: any, componentFactory: AstroComponentFactory, props: any, children: any): Promise<string>;
export declare function renderPage(result: any, Component: AstroComponentFactory, props: any, children: any): Promise<string>;
export declare function renderAstroComponent(component: InstanceType<typeof AstroComponent>): Promise<string>;
