import React__default from 'react';
import { z } from 'zod';

declare const colorTokens: readonly ["background/base", "background/elevated", "surface/base", "surface/subtle", "surface/inverted", "content/primary", "content/secondary", "accent/primary", "accent/secondary", "border/base"];
declare const typographyTokens: readonly ["display/hero", "display/section", "heading/large", "heading/medium", "heading/small", "body/normal", "body/small", "caption"];
declare const spacingTokens: readonly ["none", "3xs", "2xs", "xs", "sm", "md", "lg", "xl", "2xl", "3xl"];
declare const radiusTokens: readonly ["none", "xs", "sm", "md", "lg", "pill", "full"];
declare const shadowTokens: readonly ["none", "soft", "medium", "strong"];
type ThemeTokens = {
    color: Record<(typeof colorTokens)[number], string>;
    typography: Record<(typeof typographyTokens)[number], {
        fontSize: string;
        lineHeight: string;
        fontWeight?: string;
    }>;
    spacing: Record<(typeof spacingTokens)[number], string>;
    radius: Record<(typeof radiusTokens)[number], string>;
    shadow: Record<(typeof shadowTokens)[number], string>;
    palette: Record<string, string>;
};

type RouteMapEntry = string | {
    path?: string | null;
    href?: string | null;
    url?: string | null;
    draftPath?: string | null;
    [key: string]: unknown;
};
type RouteMap = Record<string, RouteMapEntry>;
type TransformContext = {
    theme: ThemeTokens;
    locale?: string;
    routes?: RouteMap;
};
type TransformHandler<TOptions = unknown> = (value: unknown, options: TOptions, context: TransformContext) => unknown;
type TransformDefinition<TOptions = unknown> = {
    id: string;
    summary?: string;
    kind: "formatter" | "collection" | "string" | "html";
    schema?: z.ZodType<TOptions>;
    run: TransformHandler<TOptions>;
};
type TransformRegistry = Map<string, TransformDefinition<any>>;

type ViewModel = Record<string, unknown>;
type ComponentRegistry = Record<string, React__default.ComponentType<any>>;
type ResolverContext = {
    viewModel: ViewModel;
    registry: ComponentRegistry;
    transforms?: TransformRegistry;
    theme?: ThemeTokens;
    routes?: RouteMap;
    pathBase?: string;
    blockId?: string | null;
    blockKind?: string;
    blockContent?: unknown;
    blockBindings?: Record<string, unknown>;
    fragmentRegistry?: Record<string, any>;
};

export type { ComponentRegistry as C, ResolverContext as R, ThemeTokens as T, TransformRegistry as a, RouteMap as b };
