/**
 * Public SDK contracts for template bindings.
 *
 * These are SDK-owned copies of the shape used by the blocks runtime so that
 * SDK consumers don't need to install `@riverbankcms/blocks` for typings.
 *
 * Runtime implementations are delegated to `@riverbankcms/blocks/bindings`.
 */
export type BindingSource = 'field' | 'meta' | 'literal' | 'transform' | 'fallback';
/**
 * Keep in sync with:
 * - @riverbankcms/blocks `TRANSFORMS`
 * - @riverbankcms/content-model `TEMPLATE_BINDING_TRANSFORMS`
 */
export declare const BINDING_TRANSFORMS: {
    readonly RICHTEXT_FIRST_PARAGRAPH: "richtext.firstParagraph";
    readonly DATE_FORMAT_SHORT: "date.formatShort";
    readonly DATE_FORMAT_LONG: "date.formatLong";
};
export type BindingTransformName = typeof BINDING_TRANSFORMS[keyof typeof BINDING_TRANSFORMS];
export declare const BINDING_TRANSFORM_VALUES: [BindingTransformName, ...BindingTransformName[]];
export declare const BINDING_TRANSFORM_LIST: string;
export declare function describeInvalidBindingTransform(transform: string): string;
export type BindingDescriptor = {
    source: 'field' | 'meta';
    path: string;
} | {
    source: 'literal';
    value: unknown;
} | {
    source: 'transform';
    transform: BindingTransformName;
    input?: BindingInput;
    path?: string;
} | {
    source: 'fallback';
    options: BindingInput[];
};
export type BindingInput = BindingDescriptor | string | Record<string, unknown>;
export type BindingMap = Record<string, unknown>;
export type BindingContext = {
    fields: Record<string, unknown>;
    meta: Record<string, unknown>;
};
