import type { KernelPage, KernelRouteMetadata, KernelSiteConfig, RenderInput } from './types.js';
export interface RouteEntry {
    slug: string;
    path: string;
    payloadRef: string;
    digest: string;
    fragmentRefs?: string[];
}
export interface FragmentEntry {
    id: string;
    payloadRef: string;
    digest: string;
    fragmentRefs?: string[];
}
export interface CompiledManifest {
    manifestVersion: string;
    buildDigest: string;
    siteConfigRef: string;
    routes: Record<string, RouteEntry>;
    fragments: Record<string, FragmentEntry>;
}
export interface ContentProvider {
    getSiteConfig<T = unknown>(): Promise<T>;
    getPage<T = unknown>(route: string): Promise<T>;
    getFragment<T = unknown>(id: string): Promise<T>;
    listRoutes(): Promise<RouteEntry[]>;
}
export declare class PageNotFoundError extends Error {
    constructor(route: string, cause?: unknown);
}
export declare class FragmentNotFoundError extends Error {
    constructor(id: string, cause?: unknown);
}
export interface RenderInputOptions {
    domain?: string;
    locale?: string;
}
export declare function loadRenderInput(provider: ContentProvider, route?: string, options?: RenderInputOptions): Promise<RenderInput>;
export declare function routeMetadataForContent(siteConfig: KernelSiteConfig, page: KernelPage | null): KernelRouteMetadata;
