import type { Media } from "../../lib/media";
import type { NodeDefinition } from "../node";
import type { SystemBlockDefinition } from "../registry";
import type { ModalFieldDefinition } from "../manifest/schema";
import type { LinkValue } from "../types/link";
import type { CtaIconName } from "../icons/cta";
import type { ContentFromManifest } from "../manifest/derivedContent";
import { type BlockConfig, type DefinedBlockManifest } from "../defineBlock";
import { heroCopyFragment, heroCtaRowFragment, heroLayoutControlsFragment } from "../fragments";
declare const classicLayout: NodeDefinition;
declare const microLayout: NodeDefinition;
declare const splitLayout: NodeDefinition;
declare const splitReverseLayout: NodeDefinition;
type HeroConfig = Omit<BlockConfig, "additionalFields" | "defaultVariant" | "fragments" | "includeContainerStyles" | "promotedFields" | "variants"> & {
    readonly includeContainerStyles: true;
    readonly promotedFields: readonly ["_sectionStyles.background.image"];
    readonly fragments: readonly [
        {
            readonly fragment: typeof heroCopyFragment;
            readonly fieldPriority: 0;
        },
        {
            readonly fragment: typeof heroLayoutControlsFragment;
            readonly fieldPriority: 1;
        },
        {
            readonly fragment: typeof heroCtaRowFragment;
            readonly fieldPriority: 2;
        }
    ];
    readonly additionalFields: readonly [
        ModalFieldDefinition & {
            readonly id: "_contentCardStyles";
            readonly __boxStyleType?: "container";
        }
    ];
    readonly variants: {
        readonly classic: typeof classicLayout;
        readonly micro: typeof microLayout;
        readonly split: typeof splitLayout;
        readonly splitReverse: typeof splitReverseLayout;
    };
    readonly defaultVariant: "classic";
};
declare const heroConfig: HeroConfig;
export declare const heroManifest: DefinedBlockManifest<typeof heroConfig>;
export type HeroManifest = typeof heroManifest;
export type HeroCta = {
    label: string;
    link: LinkValue;
    /** Button variant ID - matches theme.buttons.variants[].id */
    variant?: string;
    /** Button size ID - matches theme.buttons.sizes */
    size?: "sm" | "md" | "lg" | "xl";
    iconLeft?: CtaIconName | null;
    iconRight?: CtaIconName | null;
};
export type HeroCtaInput = Partial<HeroCta>;
export type HeroContent = ContentFromManifest<typeof heroManifest>;
export type HeroMedia = Media;
export declare const heroBlockDefinition: SystemBlockDefinition<HeroContent>;
export {};
