import type { NodeDefinition } from "../../node";
import { type NodeModifier } from "../../node/builder";
/**
 * Build attribution nodes for testimonial cards.
 * Handles name, job title, company, and avatar with different layout modes.
 */
export declare function buildAttributionNodes(): NodeDefinition[];
/**
 * Build a testimonial card with quote, body text, and attribution.
 * Used by all layout variants.
 */
export declare function buildTestimonialCard(...mods: NodeModifier[]): NodeDefinition;
/**
 * Build carousel layout for testimonials.
 * Renders testimonials in a swipeable carousel with controls.
 */
export declare function buildCarouselLayout(): NodeDefinition;
/**
 * Build grid layout for testimonials.
 * Renders testimonials in a responsive grid with configurable columns.
 */
export declare function buildGridLayout(): NodeDefinition;
/**
 * Fragment definition for testimonials carousel.
 * Provides field definitions and data loader configuration.
 *
 * Layout is managed at the block level using the exported layout builder
 * functions combined with the variant system via createBlockManifest().
 */
export declare const testimonialsCarouselFragment: import("..").DefinedFragment<{
    readonly id: "testimonialsCarousel";
    readonly title: "Testimonials";
    readonly description: "Testimonials layout with variant support (carousel, grid).";
    readonly fields: readonly [{
        readonly id: "slidesToShow";
        readonly type: "select";
        readonly label: "Slides per view (mobile)";
        readonly description: "Number of testimonials visible on small screens.";
        readonly defaultValue: "1";
        readonly options: [{
            readonly value: "1";
            readonly label: "1";
        }, {
            readonly value: "2";
            readonly label: "2";
        }, {
            readonly value: "3";
            readonly label: "3";
        }];
        readonly ui: {
            readonly intent: "display";
            readonly visibleWhen: {
                readonly field: "variant";
                readonly equals: "carousel";
            };
        };
    }, {
        readonly id: "slidesToShowTablet";
        readonly type: "select";
        readonly label: "Slides per view (tablet)";
        readonly description: "Number of testimonials visible on medium screens. If not set, uses the mobile value.";
        readonly options: [{
            readonly value: "";
            readonly label: "Same as mobile";
        }, {
            readonly value: "1";
            readonly label: "1";
        }, {
            readonly value: "2";
            readonly label: "2";
        }, {
            readonly value: "3";
            readonly label: "3";
        }];
        readonly ui: {
            readonly intent: "display";
            readonly visibleWhen: {
                readonly field: "variant";
                readonly equals: "carousel";
            };
        };
    }, {
        readonly id: "slidesToShowDesktop";
        readonly type: "select";
        readonly label: "Slides per view (desktop)";
        readonly description: "Number of testimonials visible on large screens. If not set, uses the tablet value.";
        readonly options: [{
            readonly value: "";
            readonly label: "Same as tablet";
        }, {
            readonly value: "1";
            readonly label: "1";
        }, {
            readonly value: "2";
            readonly label: "2";
        }, {
            readonly value: "3";
            readonly label: "3";
        }];
        readonly ui: {
            readonly intent: "display";
            readonly visibleWhen: {
                readonly field: "variant";
                readonly equals: "carousel";
            };
        };
    }, {
        readonly id: "transition";
        readonly type: "select";
        readonly label: "Transition";
        readonly defaultValue: "slide";
        readonly options: [{
            readonly value: "slide";
            readonly label: "Slide";
        }, {
            readonly value: "fade";
            readonly label: "Fade";
        }];
        readonly ui: {
            readonly intent: "display";
            readonly visibleWhen: {
                readonly field: "variant";
                readonly equals: "carousel";
            };
        };
    }, {
        readonly id: "showDots";
        readonly type: "boolean";
        readonly label: "Show dots";
        readonly defaultValue: false;
        readonly ui: {
            readonly intent: "display";
            readonly visibleWhen: {
                readonly field: "variant";
                readonly equals: "carousel";
            };
        };
    }, {
        readonly id: "autoplay";
        readonly type: "boolean";
        readonly label: "Autoplay";
        readonly defaultValue: false;
        readonly ui: {
            readonly intent: "behavior";
            readonly visibleWhen: {
                readonly field: "variant";
                readonly equals: "carousel";
            };
        };
    }, {
        readonly id: "autoplayDelay";
        readonly type: "select";
        readonly label: "Autoplay delay";
        readonly defaultValue: "5000";
        readonly options: [{
            readonly value: "3000";
            readonly label: "3 seconds";
        }, {
            readonly value: "5000";
            readonly label: "5 seconds";
        }, {
            readonly value: "7000";
            readonly label: "7 seconds";
        }, {
            readonly value: "10000";
            readonly label: "10 seconds";
        }];
        readonly ui: {
            readonly intent: "behavior";
            readonly visibleWhen: {
                readonly field: "variant";
                readonly equals: "carousel";
            };
        };
    }, {
        readonly id: "arrowVisibility";
        readonly type: "select";
        readonly label: "Arrow visibility";
        readonly defaultValue: "always";
        readonly options: [{
            readonly value: "always";
            readonly label: "Always visible";
        }, {
            readonly value: "hover";
            readonly label: "Show on hover";
        }];
        readonly ui: {
            readonly intent: "display";
            readonly visibleWhen: {
                readonly field: "variant";
                readonly equals: "carousel";
            };
        };
    }, {
        readonly id: "maxEntries";
        readonly type: "select";
        readonly label: "Testimonials to load";
        readonly defaultValue: "6";
        readonly ui: {
            readonly intent: "display";
        };
        readonly options: [{
            readonly value: "3";
            readonly label: "3 testimonials";
        }, {
            readonly value: "6";
            readonly label: "6 testimonials";
        }, {
            readonly value: "9";
            readonly label: "9 testimonials";
        }];
    }];
    readonly layout: readonly [];
    readonly data: {
        readonly key: "entries";
        readonly loader: {
            readonly endpoint: "listPublishedEntries";
            readonly params: {
                readonly type: "testimonial";
                readonly siteId: {
                    readonly $bind: {
                        readonly from: "$root.siteId";
                    };
                };
                readonly limit: {
                    readonly $bind: {
                        readonly from: "maxEntries";
                        readonly fallback: "6";
                    };
                };
                readonly stage: {
                    readonly $bind: {
                        readonly from: "$root.previewStage";
                        readonly fallback: "published";
                    };
                };
            };
            readonly mode: "server";
        };
    };
}>;
