import type { Manifest } from '@actuate-media/component-blocks';
export interface ComponentBlockValue {
    component: string;
    props: Record<string, unknown>;
}
export interface ComponentBlockFieldProps {
    label?: string;
    manifest: Manifest;
    /** Optional whitelist of component names. */
    allow?: string[];
    /** Default component picked when the field is first used. */
    defaultComponent?: string;
    value?: ComponentBlockValue;
    onChange: (value: ComponentBlockValue) => void;
    /**
     * Optional async validator hook. Receives the proposed value and the
     * field config; should return `true` for ok or a string error.
     * Falls back to a built-in structural validator when not provided —
     * which is what cms-core would do server-side at save time anyway.
     */
    validate?: (value: ComponentBlockValue) => string | true;
    helpText?: string;
}
export declare function ComponentBlockField({ label, manifest, allow, defaultComponent, value, onChange, validate, helpText, }: ComponentBlockFieldProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=ComponentBlockField.d.ts.map