/**
 * Template binding resolution for SDK content entries.
 *
 * Runtime is delegated to the shared `@riverbankcms/blocks/bindings` module, but
 * the SDK's public type surface must remain SDK-owned so consumers don't need
 * to install `@riverbankcms/blocks`.
 */
import type { BindingTransformName, BindingSource, BindingDescriptor, BindingInput, BindingMap, BindingContext } from '../../contracts';
export type { BindingSource, BindingDescriptor, BindingInput, BindingMap, BindingContext } from '../../contracts';
export declare const TRANSFORMS: {
    RICHTEXT_FIRST_PARAGRAPH: "richtext.firstParagraph";
    DATE_FORMAT_SHORT: "date.formatShort";
    DATE_FORMAT_LONG: "date.formatLong";
};
export declare const BINDING_SOURCES: BindingSource[];
export declare const isRecord: (value: unknown) => value is Record<string, unknown>;
export declare const isBindingDescriptor: (value: unknown) => value is BindingDescriptor;
export declare const isBindingDescriptorLike: (value: unknown) => value is BindingInput;
export declare const normalizeBindingInput: (value: BindingInput) => BindingDescriptor | null;
export declare const normalizeBindingOutput: <T>(value: T) => T;
export declare const applyBindings: (bindings: BindingMap, context: BindingContext) => Record<string, unknown>;
export declare const resolveBindingValue: (descriptor: BindingDescriptor, context: BindingContext) => unknown;
export declare const getPath: (source: Record<string, unknown>, path: string) => unknown;
export declare const applyTransform: (name: BindingTransformName | string | undefined, value: unknown) => unknown;
export declare const extractFirstParagraph: (value: unknown) => string | null;
export declare const formatDate: (value: unknown, options?: Intl.DateTimeFormatOptions) => string | null;
