import type { ComponentPresentation } from '../../../genui/index.js';
import type { ReactComponentRegistry } from './react-registry.js';
export { createReactComponentRegistry, type ReactComponentRegistry } from './react-registry.js';
export interface CaptureOptions {
    width?: number;
    height?: number;
    timeoutMs?: number;
}
export interface CaptureAdapter {
    images(html: readonly string[], options: CaptureOptions): Promise<Uint8Array[]>;
    pdf(html: readonly string[], options: CaptureOptions): Promise<Uint8Array>;
}
export interface ServerRenderOptions extends CaptureOptions {
    rowsPerPage?: number;
    capture?: CaptureAdapter;
}
export interface ReactServerRendererOptions {
    registry: ReactComponentRegistry;
    /** Trusted app CSS, or a trusted filesystem path; never supply user CSS. */
    stylesheet?: string | {
        path: string;
    };
    theme?: string;
    capture?: CaptureAdapter;
}
export declare function boundedCaptureOptions(options: CaptureOptions): Required<CaptureOptions>;
export declare function createReactServerRenderer(options: ReactServerRendererOptions): {
    html: (presentation: ComponentPresentation<object>) => Promise<string>;
    images(presentation: ComponentPresentation<object>, settings?: ServerRenderOptions): Promise<Uint8Array<ArrayBufferLike>[]>;
    pdf(presentation: ComponentPresentation<object>, settings?: ServerRenderOptions): Promise<Uint8Array<ArrayBufferLike>>;
};
//# sourceMappingURL=server.d.ts.map