import type { SystemBlockDefinition } from "../registry";
import type { SectionStylesContent } from "../fields/boxStyles";
import { courseRegistrationBlockRuntime } from "../runtime/nodes/course-registration.interactive";
export { type PublicCourse, type CourseSession, type CourseVenue, type CourseStatus } from "./courses/shared";
/**
 * Course Registration Block
 *
 * Registration form for multi-session courses. Customers enroll once
 * and are automatically added to all course sessions.
 *
 * Key differences from Event Registration:
 * - No occurrence selection (all sessions included)
 * - No ticket quantity (enrollment is binary)
 * - No pass payment option (passes not valid for courses)
 * - Shows all session dates upfront
 * - Membership-based payment if course accepts memberships
 *
 * Context:
 * - When placed on a course content type template, the course is
 *   pre-selected from route context ($root.contentEntry)
 * - Can also be placed on standalone pages with course selection
 */
export declare const courseRegistrationManifest: import("..").DefinedBlockManifest<{
    readonly id: "block.course-registration";
    readonly version: "1.0.0";
    readonly title: "Course Registration";
    readonly titleSource: "heading";
    readonly description: "Enrollment form for multi-session courses";
    readonly category: "interactive";
    readonly tags: readonly ["courses", "enrollment", "booking", "form", "signup", "education"];
    readonly icon: "GraduationCap";
    readonly styleTokens: {
        readonly background: "surface";
        readonly typography: "body";
        readonly spacing: "md";
    };
    readonly behaviours: {
        readonly supportsThemeSwitching: true;
        readonly inlineEditing: false;
        readonly animation: false;
        readonly paletteHidden: false;
    };
    readonly additionalFields: readonly [{
        readonly id: "heading";
        readonly type: "text";
        readonly label: "Heading";
        readonly description: "Main heading for the registration form";
        readonly required: false;
        readonly multiline: false;
        readonly defaultValue: "Enroll in this course";
    }, {
        readonly id: "description";
        readonly type: "richText";
        readonly label: "Description";
        readonly description: "Optional introductory text";
        readonly required: false;
    }, {
        readonly id: "showSessions";
        readonly type: "boolean";
        readonly label: "Show sessions";
        readonly description: "Display the list of course sessions";
        readonly required: false;
        readonly defaultValue: true;
        readonly ui: {
            readonly intent: "display";
        };
    }, {
        readonly id: "showPrice";
        readonly type: "boolean";
        readonly label: "Show price";
        readonly description: "Display the course price";
        readonly required: false;
        readonly defaultValue: true;
        readonly ui: {
            readonly intent: "display";
        };
    }, {
        readonly id: "showCapacity";
        readonly type: "boolean";
        readonly label: "Show available spots";
        readonly description: "Display remaining enrollment capacity";
        readonly required: false;
        readonly defaultValue: true;
        readonly ui: {
            readonly intent: "display";
        };
    }, {
        readonly id: "showVenue";
        readonly type: "boolean";
        readonly label: "Show venue";
        readonly description: "Display venue information";
        readonly required: false;
        readonly defaultValue: true;
        readonly ui: {
            readonly intent: "display";
        };
    }, {
        readonly id: "successMessage";
        readonly type: "text";
        readonly label: "Success message";
        readonly description: "Message shown after successful enrollment";
        readonly required: false;
        readonly multiline: true;
        readonly defaultValue: "You're enrolled! Check your email for confirmation and session details.";
        readonly maxLength: 500;
    }, {
        readonly id: "waitlistMessage";
        readonly type: "text";
        readonly label: "Waitlist message";
        readonly description: "Message when added to waitlist";
        readonly required: false;
        readonly multiline: true;
        readonly defaultValue: "You've been added to the waitlist. We'll email you a claim link if a spot opens up.";
        readonly maxLength: 500;
    }, {
        readonly id: "membershipMessage";
        readonly type: "text";
        readonly label: "Membership enrollment message";
        readonly description: "Message when enrolled using a membership";
        readonly required: false;
        readonly multiline: true;
        readonly defaultValue: "Enrolled using your membership! Check your email for session details.";
        readonly maxLength: 500;
    }, {
        readonly id: "buttonText";
        readonly type: "text";
        readonly label: "Submit button text";
        readonly description: "Text for the enrollment submit button";
        readonly required: false;
        readonly multiline: false;
        readonly defaultValue: "Complete Enrollment";
        readonly maxLength: 40;
    }, {
        readonly id: "buttonVariant";
        readonly type: "select";
        readonly label: "Button style";
        readonly description: "Choose a button style from your theme";
        readonly required: false;
        readonly multiple: false;
        readonly defaultValue: "primary";
        readonly options: [{
            readonly value: "primary";
            readonly label: "Primary";
        }, {
            readonly value: "secondary";
            readonly label: "Secondary";
        }, {
            readonly value: "outline";
            readonly label: "Outline";
        }];
        readonly ui: {
            readonly intent: "style";
        };
    }];
    readonly layout: readonly [import("..").NodeDefinition];
}>;
export type CourseRegistrationContent = {
    heading?: string | null;
    description?: unknown;
    showSessions?: boolean | null;
    showPrice?: boolean | null;
    showCapacity?: boolean | null;
    showVenue?: boolean | null;
    successMessage?: string | null;
    waitlistMessage?: string | null;
    membershipMessage?: string | null;
    buttonText?: string | null;
    buttonVariant?: "primary" | "secondary" | "outline" | null;
    _sectionStyles?: SectionStylesContent;
};
export declare const courseRegistrationBlockDefinition: SystemBlockDefinition<CourseRegistrationContent, typeof courseRegistrationBlockRuntime>;
