import { z } from 'zod';
import { $ZodType } from 'zod/v4/core';
export { A as AddFirstProductOptions, a as AddFirstProductResult, P as ProductSummary, T as TestClientHandle, c as createTestClient, f as fixtures } from './client-Dh-KIIX8.js';
import './client-xc2aQSB4.js';
import './product-DXhjLQ_w.js';
import './payment-nH9OCUg2.js';
import './server-wAB-qfyZ.js';
import 'hono';

/**
 * Cimplify schema registry. Every public schema in this directory is
 * registered here with `id`, `description`, and `version` metadata.
 *
 *   import { cimplifyRegistry } from "@cimplify/sdk/testing";
 *   const meta = cimplifyRegistry.get(CartSchema); // { id, description, version }
 *
 * Per-schema versions let consumers pin to a specific shape and detect
 * drift when only one schema changes (vs a single global SCHEMA_VERSION
 * which gives false positives on every release).
 *
 * The registry feeds `z.toJSONSchema()` so emitted JSON Schemas have
 * proper `$id` / `description` / clean `$defs` for downstream tooling
 * (OpenAPI, agent prompts, codegen).
 */
interface CimplifySchemaMeta {
    id: string;
    description: string;
    /** Bump when the shape of THIS schema changes in a breaking way. */
    version: string;
}
declare const cimplifyRegistry: z.core.$ZodRegistry<CimplifySchemaMeta, z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
/**
 * Helper: register a schema with metadata and return it. Pattern is:
 *
 *   export const MoneySchema = registerSchema(
 *     z.string().regex(...),
 *     { id: "Money", description: "Decimal money string", version: "1.0.0" },
 *   );
 */
declare function registerSchema<T extends $ZodType>(schema: T, meta: CimplifySchemaMeta): T;
/**
 * Strict money — exactly two decimal places. Backend always serializes
 * decimals to 2dp; consumer code that produces "12.5" or "12.555" is wrong.
 *
 * If you have a code path that legitimately needs unbounded precision
 * (rare; usually FX / tax-rate display), use `MoneyLooseSchema`.
 */
declare const MoneySchema: z.ZodString;
declare const MoneyLooseSchema: z.ZodString;
declare const IsoDateTimeSchema: z.ZodISODateTime;
declare const TimestampSchema: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
declare const CurrencyCodeSchema: z.ZodString;
declare const CountryCodeSchema: z.ZodString;
declare const LocaleSchema: z.ZodString;
declare const PhoneE164Schema: z.ZodString;
declare const SeedNameSchema: z.ZodEnum<{
    default: "default";
    empty: "empty";
    "reesa-storefront": "reesa-storefront";
    restaurant: "restaurant";
    retail: "retail";
    services: "services";
    grocery: "grocery";
    fashion: "fashion";
}>;
declare const ProductTypeSchema: z.ZodEnum<{
    product: "product";
    service: "service";
    digital: "digital";
    bundle: "bundle";
    composite: "composite";
}>;
declare const LineTypeSchema: z.ZodEnum<{
    service: "service";
    digital: "digital";
    bundle: "bundle";
    composite: "composite";
    simple: "simple";
}>;
declare const ServiceStatusSchema: z.ZodEnum<{
    pending: "pending";
    confirmed: "confirmed";
    completed: "completed";
    cancelled: "cancelled";
}>;
/**
 * Structured error thrown by every `assertX` helper. Agents can catch
 * this and surface the issue list directly (e.g. in a toast or log).
 *
 * Compatible with RFC 7807 Problem Details: `toJSON()` produces a
 * `{ type, title, status, detail, errors }` envelope where `errors`
 * is the typed zod issue array.
 */
declare class SchemaViolationError extends Error {
    readonly label: string;
    readonly issues: ReadonlyArray<{
        path: string[];
        message: string;
        code?: string;
    }>;
    readonly name = "SchemaViolationError";
    constructor(message: string, label: string, issues: ReadonlyArray<{
        path: string[];
        message: string;
        code?: string;
    }>);
    toJSON(): {
        type: string;
        title: string;
        status: number;
        detail: string;
        errors: ReadonlyArray<{
            path: string[];
            message: string;
            code?: string;
        }>;
    };
}
/**
 * Build a typed assertion from any zod schema. Single source of the
 * "parse → format → throw" pattern. Powered by zod 4's built-in
 * `z.prettifyError` for human-readable output.
 *
 *   const assertCart = makeAssertion(CartSchema, "cart");
 *   assertCart(value); // throws SchemaViolationError with structured issues
 *
 * Generic over `$ZodType` (zod/v4/core), so both classic Zod schemas
 * and Zod Mini schemas work — required for library authors per the
 * official Zod 4 guidance.
 */
declare function makeAssertion<T extends $ZodType>(schema: T, label: string): (value: unknown) => asserts value is z.infer<T>;

/**
 * Brand schema — the contract for `lib/brand.ts` in every storefront.
 *
 * Templates that need extra fields (fashion's `lookbook`, services'
 * `bookingPolicy`) should `BrandSchema.extend({ … })` rather than
 * fork this schema.
 */

declare const BrandSocialSchema: z.ZodObject<{
    label: z.ZodString;
    href: z.ZodString;
    icon: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const BrandNavLinkSchema: z.ZodObject<{
    label: z.ZodString;
    href: z.ZodString;
}, z.core.$strip>;
declare const BrandPolicySectionSchema: z.ZodObject<{
    heading: z.ZodString;
    body: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
        intro: z.ZodString;
        bullets: z.ZodArray<z.ZodString>;
    }, z.core.$strip>]>;
}, z.core.$strip>;
declare const BrandPolicyPageSchema: z.ZodObject<{
    eyebrow: z.ZodString;
    title: z.ZodString;
    lastUpdated: z.ZodString;
    sections: z.ZodArray<z.ZodObject<{
        heading: z.ZodString;
        body: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
            intro: z.ZodString;
            bullets: z.ZodArray<z.ZodString>;
        }, z.core.$strip>]>;
    }, z.core.$strip>>;
}, z.core.$strip>;
declare const BrandContactSchema: z.ZodObject<{
    email: z.ZodString;
    phone: z.ZodString;
    phoneTel: z.ZodString;
    streetAddress: z.ZodString;
    city: z.ZodString;
    countryCode: z.ZodString;
    hours: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const BrandHeroSchema: z.ZodObject<{
    badge: z.ZodOptional<z.ZodString>;
    title: z.ZodString;
    subtitle: z.ZodString;
    primaryCtaLabel: z.ZodString;
    secondaryCtaLabel: z.ZodOptional<z.ZodString>;
    secondaryCtaHref: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const BrandFaqSchema: z.ZodObject<{
    eyebrow: z.ZodOptional<z.ZodString>;
    title: z.ZodString;
    sections: z.ZodArray<z.ZodObject<{
        title: z.ZodString;
        items: z.ZodArray<z.ZodObject<{
            q: z.ZodString;
            a: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
declare const BrandSchema: z.ZodObject<{
    name: z.ZodString;
    shortName: z.ZodString;
    microTag: z.ZodString;
    description: z.ZodString;
    schemaType: z.ZodString;
    currency: z.ZodString;
    locale: z.ZodString;
    contact: z.ZodObject<{
        email: z.ZodString;
        phone: z.ZodString;
        phoneTel: z.ZodString;
        streetAddress: z.ZodString;
        city: z.ZodString;
        countryCode: z.ZodString;
        hours: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>;
    socials: z.ZodArray<z.ZodObject<{
        label: z.ZodString;
        href: z.ZodString;
        icon: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    header: z.ZodObject<{
        nav: z.ZodArray<z.ZodObject<{
            label: z.ZodString;
            href: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>;
    hero: z.ZodObject<{
        badge: z.ZodOptional<z.ZodString>;
        title: z.ZodString;
        subtitle: z.ZodString;
        primaryCtaLabel: z.ZodString;
        secondaryCtaLabel: z.ZodOptional<z.ZodString>;
        secondaryCtaHref: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>;
    trustItems: z.ZodOptional<z.ZodArray<z.ZodObject<{
        label: z.ZodString;
        value: z.ZodString;
        description: z.ZodString;
        iconKey: z.ZodString;
    }, z.core.$strip>>>;
    brandStrip: z.ZodOptional<z.ZodObject<{
        headline: z.ZodString;
        brands: z.ZodArray<z.ZodString>;
    }, z.core.$strip>>;
    promo: z.ZodOptional<z.ZodObject<{
        badge: z.ZodOptional<z.ZodString>;
        title: z.ZodString;
        body: z.ZodString;
        ctaLabel: z.ZodString;
        ctaHref: z.ZodString;
    }, z.core.$strip>>;
    terms: z.ZodObject<{
        eyebrow: z.ZodString;
        title: z.ZodString;
        lastUpdated: z.ZodString;
        sections: z.ZodArray<z.ZodObject<{
            heading: z.ZodString;
            body: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                intro: z.ZodString;
                bullets: z.ZodArray<z.ZodString>;
            }, z.core.$strip>]>;
        }, z.core.$strip>>;
    }, z.core.$strip>;
    privacy: z.ZodObject<{
        eyebrow: z.ZodString;
        title: z.ZodString;
        lastUpdated: z.ZodString;
        sections: z.ZodArray<z.ZodObject<{
            heading: z.ZodString;
            body: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                intro: z.ZodString;
                bullets: z.ZodArray<z.ZodString>;
            }, z.core.$strip>]>;
        }, z.core.$strip>>;
    }, z.core.$strip>;
    shipping: z.ZodObject<{
        eyebrow: z.ZodString;
        title: z.ZodString;
        lastUpdated: z.ZodString;
        sections: z.ZodArray<z.ZodObject<{
            heading: z.ZodString;
            body: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                intro: z.ZodString;
                bullets: z.ZodArray<z.ZodString>;
            }, z.core.$strip>]>;
        }, z.core.$strip>>;
    }, z.core.$strip>;
    returns: z.ZodObject<{
        eyebrow: z.ZodString;
        title: z.ZodString;
        lastUpdated: z.ZodString;
        sections: z.ZodArray<z.ZodObject<{
            heading: z.ZodString;
            body: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                intro: z.ZodString;
                bullets: z.ZodArray<z.ZodString>;
            }, z.core.$strip>]>;
        }, z.core.$strip>>;
    }, z.core.$strip>;
    accessibility: z.ZodObject<{
        eyebrow: z.ZodString;
        title: z.ZodString;
        lastUpdated: z.ZodString;
        sections: z.ZodArray<z.ZodObject<{
            heading: z.ZodString;
            body: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                intro: z.ZodString;
                bullets: z.ZodArray<z.ZodString>;
            }, z.core.$strip>]>;
        }, z.core.$strip>>;
    }, z.core.$strip>;
    newsletter: z.ZodObject<{
        eyebrow: z.ZodOptional<z.ZodString>;
        title: z.ZodString;
        body: z.ZodString;
    }, z.core.$strip>;
    about: z.ZodObject<{
        eyebrow: z.ZodOptional<z.ZodString>;
        title: z.ZodString;
        paragraphs: z.ZodArray<z.ZodString>;
        sections: z.ZodOptional<z.ZodArray<z.ZodObject<{
            heading: z.ZodString;
            body: z.ZodString;
        }, z.core.$strip>>>;
    }, z.core.$strip>;
    faq: z.ZodObject<{
        eyebrow: z.ZodOptional<z.ZodString>;
        title: z.ZodString;
        sections: z.ZodArray<z.ZodObject<{
            title: z.ZodString;
            items: z.ZodArray<z.ZodObject<{
                q: z.ZodString;
                a: z.ZodString;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
    }, z.core.$strip>;
    account: z.ZodObject<{
        loginEyebrow: z.ZodString;
        loginTitle: z.ZodString;
        loginSubtitle: z.ZodOptional<z.ZodString>;
        signupEyebrow: z.ZodString;
        signupTitle: z.ZodString;
        signupSubtitle: z.ZodOptional<z.ZodString>;
        accountEyebrow: z.ZodString;
        accountTitle: z.ZodString;
    }, z.core.$strip>;
    contactPage: z.ZodObject<{
        eyebrow: z.ZodOptional<z.ZodString>;
        title: z.ZodString;
        body: z.ZodString;
    }, z.core.$strip>;
    trackOrder: z.ZodObject<{
        eyebrow: z.ZodOptional<z.ZodString>;
        title: z.ZodString;
        body: z.ZodString;
    }, z.core.$strip>;
    footer: z.ZodObject<{
        blurb: z.ZodOptional<z.ZodString>;
        sitemap: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
        poweredBy: z.ZodOptional<z.ZodObject<{
            label: z.ZodString;
            href: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>;
    llms: z.ZodObject<{
        summary: z.ZodString;
    }, z.core.$strip>;
    mock: z.ZodObject<{
        seed: z.ZodEnum<{
            default: "default";
            empty: "empty";
            "reesa-storefront": "reesa-storefront";
            restaurant: "restaurant";
            retail: "retail";
            services: "services";
            grocery: "grocery";
            fashion: "fashion";
        }>;
        businessId: z.ZodString;
    }, z.core.$strip>;
}, z.core.$strip>;
type Brand = z.infer<typeof BrandSchema>;
declare const assertBrand: (value: unknown) => asserts value is {
    name: string;
    shortName: string;
    microTag: string;
    description: string;
    schemaType: string;
    currency: string;
    locale: string;
    contact: {
        email: string;
        phone: string;
        phoneTel: string;
        streetAddress: string;
        city: string;
        countryCode: string;
        hours?: string | undefined;
    };
    socials: {
        label: string;
        href: string;
        icon?: string | undefined;
    }[];
    header: {
        nav: {
            label: string;
            href: string;
        }[];
    };
    hero: {
        title: string;
        subtitle: string;
        primaryCtaLabel: string;
        badge?: string | undefined;
        secondaryCtaLabel?: string | undefined;
        secondaryCtaHref?: string | undefined;
    };
    terms: {
        eyebrow: string;
        title: string;
        lastUpdated: string;
        sections: {
            heading: string;
            body: string | {
                intro: string;
                bullets: string[];
            };
        }[];
    };
    privacy: {
        eyebrow: string;
        title: string;
        lastUpdated: string;
        sections: {
            heading: string;
            body: string | {
                intro: string;
                bullets: string[];
            };
        }[];
    };
    shipping: {
        eyebrow: string;
        title: string;
        lastUpdated: string;
        sections: {
            heading: string;
            body: string | {
                intro: string;
                bullets: string[];
            };
        }[];
    };
    returns: {
        eyebrow: string;
        title: string;
        lastUpdated: string;
        sections: {
            heading: string;
            body: string | {
                intro: string;
                bullets: string[];
            };
        }[];
    };
    accessibility: {
        eyebrow: string;
        title: string;
        lastUpdated: string;
        sections: {
            heading: string;
            body: string | {
                intro: string;
                bullets: string[];
            };
        }[];
    };
    newsletter: {
        title: string;
        body: string;
        eyebrow?: string | undefined;
    };
    about: {
        title: string;
        paragraphs: string[];
        eyebrow?: string | undefined;
        sections?: {
            heading: string;
            body: string;
        }[] | undefined;
    };
    faq: {
        title: string;
        sections: {
            title: string;
            items: {
                q: string;
                a: string;
            }[];
        }[];
        eyebrow?: string | undefined;
    };
    account: {
        loginEyebrow: string;
        loginTitle: string;
        signupEyebrow: string;
        signupTitle: string;
        accountEyebrow: string;
        accountTitle: string;
        loginSubtitle?: string | undefined;
        signupSubtitle?: string | undefined;
    };
    contactPage: {
        title: string;
        body: string;
        eyebrow?: string | undefined;
    };
    trackOrder: {
        title: string;
        body: string;
        eyebrow?: string | undefined;
    };
    footer: {
        blurb?: string | undefined;
        sitemap?: unknown[] | undefined;
        poweredBy?: {
            label: string;
            href: string;
        } | undefined;
    };
    llms: {
        summary: string;
    };
    mock: {
        seed: "default" | "empty" | "reesa-storefront" | "restaurant" | "retail" | "services" | "grocery" | "fashion";
        businessId: string;
    };
    trustItems?: {
        label: string;
        value: string;
        description: string;
        iconKey: string;
    }[] | undefined;
    brandStrip?: {
        headline: string;
        brands: string[];
    } | undefined;
    promo?: {
        title: string;
        body: string;
        ctaLabel: string;
        ctaHref: string;
        badge?: string | undefined;
    } | undefined;
};

/**
 * Cart schemas — the SDK ↔ mock ↔ backend contract for cart
 * mutations and the canonical cart response shape.
 */

declare const BundleSelectionInputSchema: z.ZodObject<{
    component_id: z.ZodString;
    variant_id: z.ZodOptional<z.ZodString>;
    quantity: z.ZodNumber;
    scheduled_start: z.ZodOptional<z.ZodString>;
    scheduled_end: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const CompositeSelectionInputSchema: z.ZodObject<{
    component_id: z.ZodOptional<z.ZodString>;
    source_product_id: z.ZodOptional<z.ZodString>;
    source_stock_id: z.ZodOptional<z.ZodString>;
    source_type: z.ZodOptional<z.ZodEnum<{
        product: "product";
        stock: "stock";
        add_on: "add_on";
        standalone: "standalone";
    }>>;
    quantity: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
declare const CustomerInputValueSchema: z.ZodObject<{
    field_id: z.ZodString;
    field_name: z.ZodOptional<z.ZodString>;
    field_type: z.ZodOptional<z.ZodString>;
    value: z.ZodUnknown;
}, z.core.$strip>;
declare const AddItemPayloadSchema: z.ZodObject<{
    item_id: z.ZodString;
    quantity: z.ZodNumber;
    variant_id: z.ZodOptional<z.ZodString>;
    quote_id: z.ZodOptional<z.ZodString>;
    add_on_options: z.ZodOptional<z.ZodArray<z.ZodString>>;
    bundle_selections: z.ZodOptional<z.ZodArray<z.ZodObject<{
        component_id: z.ZodString;
        variant_id: z.ZodOptional<z.ZodString>;
        quantity: z.ZodNumber;
        scheduled_start: z.ZodOptional<z.ZodString>;
        scheduled_end: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>>;
    composite_selections: z.ZodOptional<z.ZodArray<z.ZodObject<{
        component_id: z.ZodOptional<z.ZodString>;
        source_product_id: z.ZodOptional<z.ZodString>;
        source_stock_id: z.ZodOptional<z.ZodString>;
        source_type: z.ZodOptional<z.ZodEnum<{
            product: "product";
            stock: "stock";
            add_on: "add_on";
            standalone: "standalone";
        }>>;
        quantity: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>>>;
    scheduled_start: z.ZodOptional<z.ZodString>;
    scheduled_end: z.ZodOptional<z.ZodString>;
    staff_id: z.ZodOptional<z.ZodString>;
    resource_id: z.ZodOptional<z.ZodString>;
    special_instructions: z.ZodOptional<z.ZodString>;
    customer_inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
        field_id: z.ZodString;
        field_name: z.ZodOptional<z.ZodString>;
        field_type: z.ZodOptional<z.ZodString>;
        value: z.ZodUnknown;
    }, z.core.$strip>>>;
    billing_plan_id: z.ZodOptional<z.ZodString>;
    metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, z.core.$strip>;
type AddItemPayload = z.infer<typeof AddItemPayloadSchema>;
declare const assertAddItemPayload: (value: unknown) => asserts value is {
    item_id: string;
    quantity: number;
    variant_id?: string | undefined;
    quote_id?: string | undefined;
    add_on_options?: string[] | undefined;
    bundle_selections?: {
        component_id: string;
        quantity: number;
        variant_id?: string | undefined;
        scheduled_start?: string | undefined;
        scheduled_end?: string | undefined;
    }[] | undefined;
    composite_selections?: {
        component_id?: string | undefined;
        source_product_id?: string | undefined;
        source_stock_id?: string | undefined;
        source_type?: "product" | "stock" | "add_on" | "standalone" | undefined;
        quantity?: number | undefined;
    }[] | undefined;
    scheduled_start?: string | undefined;
    scheduled_end?: string | undefined;
    staff_id?: string | undefined;
    resource_id?: string | undefined;
    special_instructions?: string | undefined;
    customer_inputs?: {
        field_id: string;
        value: unknown;
        field_name?: string | undefined;
        field_type?: string | undefined;
    }[] | undefined;
    billing_plan_id?: string | undefined;
    metadata?: Record<string, unknown> | undefined;
};
declare const VariantDisplayAttributeSchema: z.ZodObject<{
    axis_id: z.ZodString;
    axis_name: z.ZodString;
    value_id: z.ZodString;
    value_name: z.ZodString;
}, z.core.$strip>;
declare const VariantInfoSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    sku: z.ZodOptional<z.ZodString>;
    price: z.ZodString;
    price_adjustment: z.ZodString;
    is_default: z.ZodBoolean;
    display_attributes: z.ZodOptional<z.ZodArray<z.ZodObject<{
        axis_id: z.ZodString;
        axis_name: z.ZodString;
        value_id: z.ZodString;
        value_name: z.ZodString;
    }, z.core.$strip>>>;
    images: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
declare const VariantDetailsSchema: z.ZodObject<{
    variant_id: z.ZodString;
    sku: z.ZodOptional<z.ZodString>;
    properties: z.ZodRecord<z.ZodString, z.ZodString>;
}, z.core.$strip>;
declare const ChosenPriceSchema: z.ZodObject<{
    base_price: z.ZodString;
    final_price: z.ZodString;
    markup_percentage: z.ZodString;
    markup_amount: z.ZodString;
    markup_discount_percentage: z.ZodString;
    markup_discount_amount: z.ZodString;
}, z.core.$strip>;
declare const SelectedAddOnOptionSchema: z.ZodObject<{
    option_id: z.ZodString;
    add_on_id: z.ZodString;
    name: z.ZodString;
    price: z.ZodString;
    quantity: z.ZodNumber;
    is_required: z.ZodBoolean;
    selected_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
    price_info: z.ZodOptional<z.ZodUnknown>;
}, z.core.$strip>;
declare const AddOnInDetailsSchema: z.ZodObject<{
    add_on_id: z.ZodString;
    name: z.ZodString;
    min_selections: z.ZodNumber;
    max_selections: z.ZodNumber;
    selected_options: z.ZodArray<z.ZodString>;
    is_required: z.ZodBoolean;
}, z.core.$strip>;
declare const AddOnDetailsSchema: z.ZodObject<{
    selected_options: z.ZodArray<z.ZodObject<{
        option_id: z.ZodString;
        add_on_id: z.ZodString;
        name: z.ZodString;
        price: z.ZodString;
        quantity: z.ZodNumber;
        is_required: z.ZodBoolean;
        selected_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
        price_info: z.ZodOptional<z.ZodUnknown>;
    }, z.core.$strip>>;
    total_add_on_price: z.ZodString;
    add_ons: z.ZodArray<z.ZodObject<{
        add_on_id: z.ZodString;
        name: z.ZodString;
        min_selections: z.ZodNumber;
        max_selections: z.ZodNumber;
        selected_options: z.ZodArray<z.ZodString>;
        is_required: z.ZodBoolean;
    }, z.core.$strip>>;
}, z.core.$strip>;
declare const AddOnOptionDetailsSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    is_required: z.ZodBoolean;
    description: z.ZodOptional<z.ZodString>;
    price: z.ZodOptional<z.ZodString>;
    image_url: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const AddOnGroupDetailsSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    is_multiple_allowed: z.ZodBoolean;
    min_selections: z.ZodNumber;
    max_selections: z.ZodNumber;
    required: z.ZodBoolean;
    options: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        is_required: z.ZodBoolean;
        description: z.ZodOptional<z.ZodString>;
        price: z.ZodOptional<z.ZodString>;
        image_url: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>;
declare const BundleResolvedSchema: z.ZodObject<{
    bundle_id: z.ZodString;
    selections: z.ZodArray<z.ZodUnknown>;
}, z.core.$loose>;
declare const CompositeResolvedSchema: z.ZodObject<{
    composite_id: z.ZodString;
    selections: z.ZodArray<z.ZodUnknown>;
    breakdown: z.ZodOptional<z.ZodObject<{
        base_price: z.ZodString;
        components_total: z.ZodString;
        final_price: z.ZodString;
        tier_applied: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$loose>;
declare const DiscountDetailsSchema: z.ZodObject<{
    applied_count: z.ZodNumber;
    total_amount: z.ZodString;
    discount_ids: z.ZodArray<z.ZodString>;
}, z.core.$strip>;
declare const CartItemSchema: z.ZodObject<{
    id: z.ZodString;
    cart_id: z.ZodString;
    item_id: z.ZodString;
    quantity: z.ZodNumber;
    line_key: z.ZodString;
    line_type: z.ZodEnum<{
        service: "service";
        digital: "digital";
        bundle: "bundle";
        composite: "composite";
        simple: "simple";
    }>;
    name: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    image_url: z.ZodOptional<z.ZodString>;
    category_id: z.ZodOptional<z.ZodString>;
    category_name: z.ZodOptional<z.ZodString>;
    is_available: z.ZodBoolean;
    variant_id: z.ZodOptional<z.ZodString>;
    variant_name: z.ZodOptional<z.ZodString>;
    variant_info: z.ZodOptional<z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        sku: z.ZodOptional<z.ZodString>;
        price: z.ZodString;
        price_adjustment: z.ZodString;
        is_default: z.ZodBoolean;
        display_attributes: z.ZodOptional<z.ZodArray<z.ZodObject<{
            axis_id: z.ZodString;
            axis_name: z.ZodString;
            value_id: z.ZodString;
            value_name: z.ZodString;
        }, z.core.$strip>>>;
        images: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>;
    variant_details: z.ZodOptional<z.ZodObject<{
        variant_id: z.ZodString;
        sku: z.ZodOptional<z.ZodString>;
        properties: z.ZodRecord<z.ZodString, z.ZodString>;
    }, z.core.$strip>>;
    base_price: z.ZodString;
    add_ons_price: z.ZodString;
    total_price: z.ZodString;
    item_discount_amount: z.ZodString;
    price_info: z.ZodObject<{
        base_price: z.ZodString;
        final_price: z.ZodString;
        markup_percentage: z.ZodString;
        markup_amount: z.ZodString;
        markup_discount_percentage: z.ZodString;
        markup_discount_amount: z.ZodString;
    }, z.core.$strip>;
    add_on_option_ids: z.ZodArray<z.ZodString>;
    add_on_ids: z.ZodArray<z.ZodString>;
    add_on_details: z.ZodObject<{
        selected_options: z.ZodArray<z.ZodObject<{
            option_id: z.ZodString;
            add_on_id: z.ZodString;
            name: z.ZodString;
            price: z.ZodString;
            quantity: z.ZodNumber;
            is_required: z.ZodBoolean;
            selected_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
            price_info: z.ZodOptional<z.ZodUnknown>;
        }, z.core.$strip>>;
        total_add_on_price: z.ZodString;
        add_ons: z.ZodArray<z.ZodObject<{
            add_on_id: z.ZodString;
            name: z.ZodString;
            min_selections: z.ZodNumber;
            max_selections: z.ZodNumber;
            selected_options: z.ZodArray<z.ZodString>;
            is_required: z.ZodBoolean;
        }, z.core.$strip>>;
    }, z.core.$strip>;
    add_on_options: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        is_required: z.ZodBoolean;
        description: z.ZodOptional<z.ZodString>;
        price: z.ZodOptional<z.ZodString>;
        image_url: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    add_ons: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        is_multiple_allowed: z.ZodBoolean;
        min_selections: z.ZodNumber;
        max_selections: z.ZodNumber;
        required: z.ZodBoolean;
        options: z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            name: z.ZodString;
            is_required: z.ZodBoolean;
            description: z.ZodOptional<z.ZodString>;
            price: z.ZodOptional<z.ZodString>;
            image_url: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
    scheduled_start: z.ZodOptional<z.ZodString>;
    scheduled_end: z.ZodOptional<z.ZodString>;
    staff_id: z.ZodOptional<z.ZodString>;
    resource_id: z.ZodOptional<z.ZodString>;
    service_status: z.ZodOptional<z.ZodEnum<{
        pending: "pending";
        confirmed: "confirmed";
        completed: "completed";
        cancelled: "cancelled";
    }>>;
    confirmation_code: z.ZodOptional<z.ZodString>;
    special_instructions: z.ZodOptional<z.ZodString>;
    customer_inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
        field_id: z.ZodString;
        field_name: z.ZodOptional<z.ZodString>;
        field_type: z.ZodOptional<z.ZodString>;
        value: z.ZodUnknown;
    }, z.core.$strip>>>;
    bundle_selections: z.ZodOptional<z.ZodUnknown>;
    bundle_resolved: z.ZodOptional<z.ZodObject<{
        bundle_id: z.ZodString;
        selections: z.ZodArray<z.ZodUnknown>;
    }, z.core.$loose>>;
    composite_selections: z.ZodOptional<z.ZodUnknown>;
    composite_resolved: z.ZodOptional<z.ZodObject<{
        composite_id: z.ZodString;
        selections: z.ZodArray<z.ZodUnknown>;
        breakdown: z.ZodOptional<z.ZodObject<{
            base_price: z.ZodString;
            components_total: z.ZodString;
            final_price: z.ZodString;
            tier_applied: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
    }, z.core.$loose>>;
    billing_plan_id: z.ZodOptional<z.ZodString>;
    applied_discount_ids: z.ZodArray<z.ZodString>;
    discount_details: z.ZodOptional<z.ZodObject<{
        applied_count: z.ZodNumber;
        total_amount: z.ZodString;
        discount_ids: z.ZodArray<z.ZodString>;
    }, z.core.$strip>>;
    metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    created_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
    updated_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
}, z.core.$loose>;
type CartItem = z.infer<typeof CartItemSchema>;
declare const assertCartItem: (value: unknown) => asserts value is {
    [x: string]: unknown;
    id: string;
    cart_id: string;
    item_id: string;
    quantity: number;
    line_key: string;
    line_type: "service" | "digital" | "bundle" | "composite" | "simple";
    name: string;
    is_available: boolean;
    base_price: string;
    add_ons_price: string;
    total_price: string;
    item_discount_amount: string;
    price_info: {
        base_price: string;
        final_price: string;
        markup_percentage: string;
        markup_amount: string;
        markup_discount_percentage: string;
        markup_discount_amount: string;
    };
    add_on_option_ids: string[];
    add_on_ids: string[];
    add_on_details: {
        selected_options: {
            option_id: string;
            add_on_id: string;
            name: string;
            price: string;
            quantity: number;
            is_required: boolean;
            selected_at: string;
            price_info?: unknown;
        }[];
        total_add_on_price: string;
        add_ons: {
            add_on_id: string;
            name: string;
            min_selections: number;
            max_selections: number;
            selected_options: string[];
            is_required: boolean;
        }[];
    };
    add_on_options: {
        id: string;
        name: string;
        is_required: boolean;
        description?: string | undefined;
        price?: string | undefined;
        image_url?: string | undefined;
    }[];
    add_ons: {
        id: string;
        name: string;
        is_multiple_allowed: boolean;
        min_selections: number;
        max_selections: number;
        required: boolean;
        options: {
            id: string;
            name: string;
            is_required: boolean;
            description?: string | undefined;
            price?: string | undefined;
            image_url?: string | undefined;
        }[];
    }[];
    applied_discount_ids: string[];
    created_at: string;
    updated_at: string;
    description?: string | undefined;
    image_url?: string | undefined;
    category_id?: string | undefined;
    category_name?: string | undefined;
    variant_id?: string | undefined;
    variant_name?: string | undefined;
    variant_info?: {
        id: string;
        name: string;
        price: string;
        price_adjustment: string;
        is_default: boolean;
        sku?: string | undefined;
        display_attributes?: {
            axis_id: string;
            axis_name: string;
            value_id: string;
            value_name: string;
        }[] | undefined;
        images?: string[] | undefined;
    } | undefined;
    variant_details?: {
        variant_id: string;
        properties: Record<string, string>;
        sku?: string | undefined;
    } | undefined;
    scheduled_start?: string | undefined;
    scheduled_end?: string | undefined;
    staff_id?: string | undefined;
    resource_id?: string | undefined;
    service_status?: "pending" | "confirmed" | "completed" | "cancelled" | undefined;
    confirmation_code?: string | undefined;
    special_instructions?: string | undefined;
    customer_inputs?: {
        field_id: string;
        value: unknown;
        field_name?: string | undefined;
        field_type?: string | undefined;
    }[] | undefined;
    bundle_selections?: unknown;
    bundle_resolved?: {
        [x: string]: unknown;
        bundle_id: string;
        selections: unknown[];
    } | undefined;
    composite_selections?: unknown;
    composite_resolved?: {
        [x: string]: unknown;
        composite_id: string;
        selections: unknown[];
        breakdown?: {
            base_price: string;
            components_total: string;
            final_price: string;
            tier_applied?: string | undefined;
        } | undefined;
    } | undefined;
    billing_plan_id?: string | undefined;
    discount_details?: {
        applied_count: number;
        total_amount: string;
        discount_ids: string[];
    } | undefined;
    metadata?: Record<string, unknown> | undefined;
};
declare const CartPricingSchema: z.ZodObject<{
    subtotal: z.ZodString;
    total_discounts: z.ZodString;
    tax_amount: z.ZodString;
    service_charge: z.ZodString;
    total_price: z.ZodString;
    currency: z.ZodString;
    tax_rate: z.ZodOptional<z.ZodString>;
    service_charge_rate: z.ZodOptional<z.ZodString>;
    tax_inclusive: z.ZodBoolean;
    deposit_required: z.ZodBoolean;
    deposit_amount: z.ZodString;
}, z.core.$strip>;
declare const CartSchema: z.ZodObject<{
    id: z.ZodString;
    business_id: z.ZodString;
    items: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        cart_id: z.ZodString;
        item_id: z.ZodString;
        quantity: z.ZodNumber;
        line_key: z.ZodString;
        line_type: z.ZodEnum<{
            service: "service";
            digital: "digital";
            bundle: "bundle";
            composite: "composite";
            simple: "simple";
        }>;
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        image_url: z.ZodOptional<z.ZodString>;
        category_id: z.ZodOptional<z.ZodString>;
        category_name: z.ZodOptional<z.ZodString>;
        is_available: z.ZodBoolean;
        variant_id: z.ZodOptional<z.ZodString>;
        variant_name: z.ZodOptional<z.ZodString>;
        variant_info: z.ZodOptional<z.ZodObject<{
            id: z.ZodString;
            name: z.ZodString;
            sku: z.ZodOptional<z.ZodString>;
            price: z.ZodString;
            price_adjustment: z.ZodString;
            is_default: z.ZodBoolean;
            display_attributes: z.ZodOptional<z.ZodArray<z.ZodObject<{
                axis_id: z.ZodString;
                axis_name: z.ZodString;
                value_id: z.ZodString;
                value_name: z.ZodString;
            }, z.core.$strip>>>;
            images: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strip>>;
        variant_details: z.ZodOptional<z.ZodObject<{
            variant_id: z.ZodString;
            sku: z.ZodOptional<z.ZodString>;
            properties: z.ZodRecord<z.ZodString, z.ZodString>;
        }, z.core.$strip>>;
        base_price: z.ZodString;
        add_ons_price: z.ZodString;
        total_price: z.ZodString;
        item_discount_amount: z.ZodString;
        price_info: z.ZodObject<{
            base_price: z.ZodString;
            final_price: z.ZodString;
            markup_percentage: z.ZodString;
            markup_amount: z.ZodString;
            markup_discount_percentage: z.ZodString;
            markup_discount_amount: z.ZodString;
        }, z.core.$strip>;
        add_on_option_ids: z.ZodArray<z.ZodString>;
        add_on_ids: z.ZodArray<z.ZodString>;
        add_on_details: z.ZodObject<{
            selected_options: z.ZodArray<z.ZodObject<{
                option_id: z.ZodString;
                add_on_id: z.ZodString;
                name: z.ZodString;
                price: z.ZodString;
                quantity: z.ZodNumber;
                is_required: z.ZodBoolean;
                selected_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
                price_info: z.ZodOptional<z.ZodUnknown>;
            }, z.core.$strip>>;
            total_add_on_price: z.ZodString;
            add_ons: z.ZodArray<z.ZodObject<{
                add_on_id: z.ZodString;
                name: z.ZodString;
                min_selections: z.ZodNumber;
                max_selections: z.ZodNumber;
                selected_options: z.ZodArray<z.ZodString>;
                is_required: z.ZodBoolean;
            }, z.core.$strip>>;
        }, z.core.$strip>;
        add_on_options: z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            name: z.ZodString;
            is_required: z.ZodBoolean;
            description: z.ZodOptional<z.ZodString>;
            price: z.ZodOptional<z.ZodString>;
            image_url: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        add_ons: z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            name: z.ZodString;
            is_multiple_allowed: z.ZodBoolean;
            min_selections: z.ZodNumber;
            max_selections: z.ZodNumber;
            required: z.ZodBoolean;
            options: z.ZodArray<z.ZodObject<{
                id: z.ZodString;
                name: z.ZodString;
                is_required: z.ZodBoolean;
                description: z.ZodOptional<z.ZodString>;
                price: z.ZodOptional<z.ZodString>;
                image_url: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
        scheduled_start: z.ZodOptional<z.ZodString>;
        scheduled_end: z.ZodOptional<z.ZodString>;
        staff_id: z.ZodOptional<z.ZodString>;
        resource_id: z.ZodOptional<z.ZodString>;
        service_status: z.ZodOptional<z.ZodEnum<{
            pending: "pending";
            confirmed: "confirmed";
            completed: "completed";
            cancelled: "cancelled";
        }>>;
        confirmation_code: z.ZodOptional<z.ZodString>;
        special_instructions: z.ZodOptional<z.ZodString>;
        customer_inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
            field_id: z.ZodString;
            field_name: z.ZodOptional<z.ZodString>;
            field_type: z.ZodOptional<z.ZodString>;
            value: z.ZodUnknown;
        }, z.core.$strip>>>;
        bundle_selections: z.ZodOptional<z.ZodUnknown>;
        bundle_resolved: z.ZodOptional<z.ZodObject<{
            bundle_id: z.ZodString;
            selections: z.ZodArray<z.ZodUnknown>;
        }, z.core.$loose>>;
        composite_selections: z.ZodOptional<z.ZodUnknown>;
        composite_resolved: z.ZodOptional<z.ZodObject<{
            composite_id: z.ZodString;
            selections: z.ZodArray<z.ZodUnknown>;
            breakdown: z.ZodOptional<z.ZodObject<{
                base_price: z.ZodString;
                components_total: z.ZodString;
                final_price: z.ZodString;
                tier_applied: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>>;
        }, z.core.$loose>>;
        billing_plan_id: z.ZodOptional<z.ZodString>;
        applied_discount_ids: z.ZodArray<z.ZodString>;
        discount_details: z.ZodOptional<z.ZodObject<{
            applied_count: z.ZodNumber;
            total_amount: z.ZodString;
            discount_ids: z.ZodArray<z.ZodString>;
        }, z.core.$strip>>;
        metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        created_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
        updated_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
    }, z.core.$loose>>;
    pricing: z.ZodObject<{
        subtotal: z.ZodString;
        total_discounts: z.ZodString;
        tax_amount: z.ZodString;
        service_charge: z.ZodString;
        total_price: z.ZodString;
        currency: z.ZodString;
        tax_rate: z.ZodOptional<z.ZodString>;
        service_charge_rate: z.ZodOptional<z.ZodString>;
        tax_inclusive: z.ZodBoolean;
        deposit_required: z.ZodBoolean;
        deposit_amount: z.ZodString;
    }, z.core.$strip>;
    customer_info: z.ZodObject<{
        name: z.ZodString;
        email: z.ZodOptional<z.ZodString>;
        phone: z.ZodOptional<z.ZodString>;
        address: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>;
    created_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
    updated_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
    expires_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
    status: z.ZodString;
    source: z.ZodString;
    channel: z.ZodString;
}, z.core.$loose>;
type Cart = z.infer<typeof CartSchema>;
declare const assertCart: (value: unknown) => asserts value is {
    [x: string]: unknown;
    id: string;
    business_id: string;
    items: {
        [x: string]: unknown;
        id: string;
        cart_id: string;
        item_id: string;
        quantity: number;
        line_key: string;
        line_type: "service" | "digital" | "bundle" | "composite" | "simple";
        name: string;
        is_available: boolean;
        base_price: string;
        add_ons_price: string;
        total_price: string;
        item_discount_amount: string;
        price_info: {
            base_price: string;
            final_price: string;
            markup_percentage: string;
            markup_amount: string;
            markup_discount_percentage: string;
            markup_discount_amount: string;
        };
        add_on_option_ids: string[];
        add_on_ids: string[];
        add_on_details: {
            selected_options: {
                option_id: string;
                add_on_id: string;
                name: string;
                price: string;
                quantity: number;
                is_required: boolean;
                selected_at: string;
                price_info?: unknown;
            }[];
            total_add_on_price: string;
            add_ons: {
                add_on_id: string;
                name: string;
                min_selections: number;
                max_selections: number;
                selected_options: string[];
                is_required: boolean;
            }[];
        };
        add_on_options: {
            id: string;
            name: string;
            is_required: boolean;
            description?: string | undefined;
            price?: string | undefined;
            image_url?: string | undefined;
        }[];
        add_ons: {
            id: string;
            name: string;
            is_multiple_allowed: boolean;
            min_selections: number;
            max_selections: number;
            required: boolean;
            options: {
                id: string;
                name: string;
                is_required: boolean;
                description?: string | undefined;
                price?: string | undefined;
                image_url?: string | undefined;
            }[];
        }[];
        applied_discount_ids: string[];
        created_at: string;
        updated_at: string;
        description?: string | undefined;
        image_url?: string | undefined;
        category_id?: string | undefined;
        category_name?: string | undefined;
        variant_id?: string | undefined;
        variant_name?: string | undefined;
        variant_info?: {
            id: string;
            name: string;
            price: string;
            price_adjustment: string;
            is_default: boolean;
            sku?: string | undefined;
            display_attributes?: {
                axis_id: string;
                axis_name: string;
                value_id: string;
                value_name: string;
            }[] | undefined;
            images?: string[] | undefined;
        } | undefined;
        variant_details?: {
            variant_id: string;
            properties: Record<string, string>;
            sku?: string | undefined;
        } | undefined;
        scheduled_start?: string | undefined;
        scheduled_end?: string | undefined;
        staff_id?: string | undefined;
        resource_id?: string | undefined;
        service_status?: "pending" | "confirmed" | "completed" | "cancelled" | undefined;
        confirmation_code?: string | undefined;
        special_instructions?: string | undefined;
        customer_inputs?: {
            field_id: string;
            value: unknown;
            field_name?: string | undefined;
            field_type?: string | undefined;
        }[] | undefined;
        bundle_selections?: unknown;
        bundle_resolved?: {
            [x: string]: unknown;
            bundle_id: string;
            selections: unknown[];
        } | undefined;
        composite_selections?: unknown;
        composite_resolved?: {
            [x: string]: unknown;
            composite_id: string;
            selections: unknown[];
            breakdown?: {
                base_price: string;
                components_total: string;
                final_price: string;
                tier_applied?: string | undefined;
            } | undefined;
        } | undefined;
        billing_plan_id?: string | undefined;
        discount_details?: {
            applied_count: number;
            total_amount: string;
            discount_ids: string[];
        } | undefined;
        metadata?: Record<string, unknown> | undefined;
    }[];
    pricing: {
        subtotal: string;
        total_discounts: string;
        tax_amount: string;
        service_charge: string;
        total_price: string;
        currency: string;
        tax_inclusive: boolean;
        deposit_required: boolean;
        deposit_amount: string;
        tax_rate?: string | undefined;
        service_charge_rate?: string | undefined;
    };
    customer_info: {
        name: string;
        email?: string | undefined;
        phone?: string | undefined;
        address?: string | undefined;
    };
    created_at: string;
    updated_at: string;
    expires_at: string;
    status: string;
    source: string;
    channel: string;
};

/**
 * Checkout schemas — request body and response shapes for `POST /checkout`
 * and the subsequent `POST /payments/authorization` flow.
 */

declare const CheckoutCustomerSchema: z.ZodObject<{
    name: z.ZodString;
    email: z.ZodString;
    phone: z.ZodString;
    notes: z.ZodOptional<z.ZodString>;
    save_details: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
declare const CheckoutBodySchema: z.ZodObject<{
    cart_id: z.ZodString;
    location_id: z.ZodOptional<z.ZodString>;
    customer: z.ZodObject<{
        name: z.ZodString;
        email: z.ZodString;
        phone: z.ZodString;
        notes: z.ZodOptional<z.ZodString>;
        save_details: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>;
    order_type: z.ZodString;
    address_info: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    payment_method: z.ZodString;
    mobile_money_details: z.ZodOptional<z.ZodObject<{
        phone_number: z.ZodString;
        provider: z.ZodString;
    }, z.core.$strip>>;
    special_instructions: z.ZodOptional<z.ZodString>;
    metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    pay_currency: z.ZodOptional<z.ZodString>;
    fx_quote_id: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
type CheckoutBody = z.infer<typeof CheckoutBodySchema>;
declare const assertCheckoutBody: (value: unknown) => asserts value is {
    cart_id: string;
    customer: {
        name: string;
        email: string;
        phone: string;
        notes?: string | undefined;
        save_details?: boolean | undefined;
    };
    order_type: string;
    payment_method: string;
    location_id?: string | undefined;
    address_info?: Record<string, unknown> | undefined;
    mobile_money_details?: {
        phone_number: string;
        provider: string;
    } | undefined;
    special_instructions?: string | undefined;
    metadata?: Record<string, unknown> | undefined;
    pay_currency?: string | undefined;
    fx_quote_id?: string | undefined;
};
declare const AuthorizationTypeSchema: z.ZodEnum<{
    phone: "phone";
    address: "address";
    otp: "otp";
    pin: "pin";
    birthday: "birthday";
}>;
declare const NextActionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    type: z.ZodLiteral<"none">;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"redirect">;
    authorization_url: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"authorization">;
    authorization_type: z.ZodString;
    display_text: z.ZodOptional<z.ZodString>;
}, z.core.$strip>], "type">;
declare const CheckoutResponseSchema: z.ZodObject<{
    order_id: z.ZodString;
    order_number: z.ZodString;
    payment_status: z.ZodString;
    payment_reference: z.ZodOptional<z.ZodString>;
    requires_authorization: z.ZodBoolean;
    authorization_type: z.ZodOptional<z.ZodEnum<{
        phone: "phone";
        address: "address";
        otp: "otp";
        pin: "pin";
        birthday: "birthday";
    }>>;
    next_action: z.ZodDiscriminatedUnion<[z.ZodObject<{
        type: z.ZodLiteral<"none">;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"redirect">;
        authorization_url: z.ZodString;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"authorization">;
        authorization_type: z.ZodString;
        display_text: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>], "type">;
    provider: z.ZodOptional<z.ZodString>;
    authorization_url: z.ZodOptional<z.ZodString>;
    display_text: z.ZodOptional<z.ZodString>;
    bill_token: z.ZodOptional<z.ZodString>;
    client_secret: z.ZodOptional<z.ZodString>;
    public_key: z.ZodOptional<z.ZodString>;
}, z.core.$loose>;
type CheckoutResponse = z.infer<typeof CheckoutResponseSchema>;
declare const assertCheckoutResponse: (value: unknown) => asserts value is {
    [x: string]: unknown;
    order_id: string;
    order_number: string;
    payment_status: string;
    requires_authorization: boolean;
    next_action: {
        type: "none";
    } | {
        type: "redirect";
        authorization_url: string;
    } | {
        type: "authorization";
        authorization_type: string;
        display_text?: string | undefined;
    };
    payment_reference?: string | undefined;
    authorization_type?: "phone" | "address" | "otp" | "pin" | "birthday" | undefined;
    provider?: string | undefined;
    authorization_url?: string | undefined;
    display_text?: string | undefined;
    bill_token?: string | undefined;
    client_secret?: string | undefined;
    public_key?: string | undefined;
};

/**
 * JSON Schema export — feeds OpenAPI generators, agent prompts,
 * codegen tooling, and CI contract-snapshot diffs.
 *
 * Uses zod 4's built-in `z.toJSONSchema()` with our registry so output
 * has stable `$id`, `description`, and `$defs` for clean dereferencing.
 *
 *   import { exportJsonSchemas } from "@cimplify/sdk/testing";
 *   const schemas = exportJsonSchemas();
 *   // → { Brand: { $id: "Brand", ...}, Cart: {...}, ... }
 *
 * For a single schema:
 *
 *   import { z } from "zod";
 *   import { CartSchema } from "@cimplify/sdk/testing";
 *   const cartJsonSchema = z.toJSONSchema(CartSchema);
 */

declare const PUBLIC_SCHEMAS: {
    readonly Brand: z.ZodObject<{
        name: z.ZodString;
        shortName: z.ZodString;
        microTag: z.ZodString;
        description: z.ZodString;
        schemaType: z.ZodString;
        currency: z.ZodString;
        locale: z.ZodString;
        contact: z.ZodObject<{
            email: z.ZodString;
            phone: z.ZodString;
            phoneTel: z.ZodString;
            streetAddress: z.ZodString;
            city: z.ZodString;
            countryCode: z.ZodString;
            hours: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>;
        socials: z.ZodArray<z.ZodObject<{
            label: z.ZodString;
            href: z.ZodString;
            icon: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        header: z.ZodObject<{
            nav: z.ZodArray<z.ZodObject<{
                label: z.ZodString;
                href: z.ZodString;
            }, z.core.$strip>>;
        }, z.core.$strip>;
        hero: z.ZodObject<{
            badge: z.ZodOptional<z.ZodString>;
            title: z.ZodString;
            subtitle: z.ZodString;
            primaryCtaLabel: z.ZodString;
            secondaryCtaLabel: z.ZodOptional<z.ZodString>;
            secondaryCtaHref: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>;
        trustItems: z.ZodOptional<z.ZodArray<z.ZodObject<{
            label: z.ZodString;
            value: z.ZodString;
            description: z.ZodString;
            iconKey: z.ZodString;
        }, z.core.$strip>>>;
        brandStrip: z.ZodOptional<z.ZodObject<{
            headline: z.ZodString;
            brands: z.ZodArray<z.ZodString>;
        }, z.core.$strip>>;
        promo: z.ZodOptional<z.ZodObject<{
            badge: z.ZodOptional<z.ZodString>;
            title: z.ZodString;
            body: z.ZodString;
            ctaLabel: z.ZodString;
            ctaHref: z.ZodString;
        }, z.core.$strip>>;
        terms: z.ZodObject<{
            eyebrow: z.ZodString;
            title: z.ZodString;
            lastUpdated: z.ZodString;
            sections: z.ZodArray<z.ZodObject<{
                heading: z.ZodString;
                body: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                    intro: z.ZodString;
                    bullets: z.ZodArray<z.ZodString>;
                }, z.core.$strip>]>;
            }, z.core.$strip>>;
        }, z.core.$strip>;
        privacy: z.ZodObject<{
            eyebrow: z.ZodString;
            title: z.ZodString;
            lastUpdated: z.ZodString;
            sections: z.ZodArray<z.ZodObject<{
                heading: z.ZodString;
                body: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                    intro: z.ZodString;
                    bullets: z.ZodArray<z.ZodString>;
                }, z.core.$strip>]>;
            }, z.core.$strip>>;
        }, z.core.$strip>;
        shipping: z.ZodObject<{
            eyebrow: z.ZodString;
            title: z.ZodString;
            lastUpdated: z.ZodString;
            sections: z.ZodArray<z.ZodObject<{
                heading: z.ZodString;
                body: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                    intro: z.ZodString;
                    bullets: z.ZodArray<z.ZodString>;
                }, z.core.$strip>]>;
            }, z.core.$strip>>;
        }, z.core.$strip>;
        returns: z.ZodObject<{
            eyebrow: z.ZodString;
            title: z.ZodString;
            lastUpdated: z.ZodString;
            sections: z.ZodArray<z.ZodObject<{
                heading: z.ZodString;
                body: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                    intro: z.ZodString;
                    bullets: z.ZodArray<z.ZodString>;
                }, z.core.$strip>]>;
            }, z.core.$strip>>;
        }, z.core.$strip>;
        accessibility: z.ZodObject<{
            eyebrow: z.ZodString;
            title: z.ZodString;
            lastUpdated: z.ZodString;
            sections: z.ZodArray<z.ZodObject<{
                heading: z.ZodString;
                body: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
                    intro: z.ZodString;
                    bullets: z.ZodArray<z.ZodString>;
                }, z.core.$strip>]>;
            }, z.core.$strip>>;
        }, z.core.$strip>;
        newsletter: z.ZodObject<{
            eyebrow: z.ZodOptional<z.ZodString>;
            title: z.ZodString;
            body: z.ZodString;
        }, z.core.$strip>;
        about: z.ZodObject<{
            eyebrow: z.ZodOptional<z.ZodString>;
            title: z.ZodString;
            paragraphs: z.ZodArray<z.ZodString>;
            sections: z.ZodOptional<z.ZodArray<z.ZodObject<{
                heading: z.ZodString;
                body: z.ZodString;
            }, z.core.$strip>>>;
        }, z.core.$strip>;
        faq: z.ZodObject<{
            eyebrow: z.ZodOptional<z.ZodString>;
            title: z.ZodString;
            sections: z.ZodArray<z.ZodObject<{
                title: z.ZodString;
                items: z.ZodArray<z.ZodObject<{
                    q: z.ZodString;
                    a: z.ZodString;
                }, z.core.$strip>>;
            }, z.core.$strip>>;
        }, z.core.$strip>;
        account: z.ZodObject<{
            loginEyebrow: z.ZodString;
            loginTitle: z.ZodString;
            loginSubtitle: z.ZodOptional<z.ZodString>;
            signupEyebrow: z.ZodString;
            signupTitle: z.ZodString;
            signupSubtitle: z.ZodOptional<z.ZodString>;
            accountEyebrow: z.ZodString;
            accountTitle: z.ZodString;
        }, z.core.$strip>;
        contactPage: z.ZodObject<{
            eyebrow: z.ZodOptional<z.ZodString>;
            title: z.ZodString;
            body: z.ZodString;
        }, z.core.$strip>;
        trackOrder: z.ZodObject<{
            eyebrow: z.ZodOptional<z.ZodString>;
            title: z.ZodString;
            body: z.ZodString;
        }, z.core.$strip>;
        footer: z.ZodObject<{
            blurb: z.ZodOptional<z.ZodString>;
            sitemap: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
            poweredBy: z.ZodOptional<z.ZodObject<{
                label: z.ZodString;
                href: z.ZodString;
            }, z.core.$strip>>;
        }, z.core.$strip>;
        llms: z.ZodObject<{
            summary: z.ZodString;
        }, z.core.$strip>;
        mock: z.ZodObject<{
            seed: z.ZodEnum<{
                default: "default";
                empty: "empty";
                "reesa-storefront": "reesa-storefront";
                restaurant: "restaurant";
                retail: "retail";
                services: "services";
                grocery: "grocery";
                fashion: "fashion";
            }>;
            businessId: z.ZodString;
        }, z.core.$strip>;
    }, z.core.$strip>;
    readonly AddItemPayload: z.ZodObject<{
        item_id: z.ZodString;
        quantity: z.ZodNumber;
        variant_id: z.ZodOptional<z.ZodString>;
        quote_id: z.ZodOptional<z.ZodString>;
        add_on_options: z.ZodOptional<z.ZodArray<z.ZodString>>;
        bundle_selections: z.ZodOptional<z.ZodArray<z.ZodObject<{
            component_id: z.ZodString;
            variant_id: z.ZodOptional<z.ZodString>;
            quantity: z.ZodNumber;
            scheduled_start: z.ZodOptional<z.ZodString>;
            scheduled_end: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>>;
        composite_selections: z.ZodOptional<z.ZodArray<z.ZodObject<{
            component_id: z.ZodOptional<z.ZodString>;
            source_product_id: z.ZodOptional<z.ZodString>;
            source_stock_id: z.ZodOptional<z.ZodString>;
            source_type: z.ZodOptional<z.ZodEnum<{
                product: "product";
                stock: "stock";
                add_on: "add_on";
                standalone: "standalone";
            }>>;
            quantity: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strip>>>;
        scheduled_start: z.ZodOptional<z.ZodString>;
        scheduled_end: z.ZodOptional<z.ZodString>;
        staff_id: z.ZodOptional<z.ZodString>;
        resource_id: z.ZodOptional<z.ZodString>;
        special_instructions: z.ZodOptional<z.ZodString>;
        customer_inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
            field_id: z.ZodString;
            field_name: z.ZodOptional<z.ZodString>;
            field_type: z.ZodOptional<z.ZodString>;
            value: z.ZodUnknown;
        }, z.core.$strip>>>;
        billing_plan_id: z.ZodOptional<z.ZodString>;
        metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    }, z.core.$strip>;
    readonly Cart: z.ZodObject<{
        id: z.ZodString;
        business_id: z.ZodString;
        items: z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            cart_id: z.ZodString;
            item_id: z.ZodString;
            quantity: z.ZodNumber;
            line_key: z.ZodString;
            line_type: z.ZodEnum<{
                service: "service";
                digital: "digital";
                bundle: "bundle";
                composite: "composite";
                simple: "simple";
            }>;
            name: z.ZodString;
            description: z.ZodOptional<z.ZodString>;
            image_url: z.ZodOptional<z.ZodString>;
            category_id: z.ZodOptional<z.ZodString>;
            category_name: z.ZodOptional<z.ZodString>;
            is_available: z.ZodBoolean;
            variant_id: z.ZodOptional<z.ZodString>;
            variant_name: z.ZodOptional<z.ZodString>;
            variant_info: z.ZodOptional<z.ZodObject<{
                id: z.ZodString;
                name: z.ZodString;
                sku: z.ZodOptional<z.ZodString>;
                price: z.ZodString;
                price_adjustment: z.ZodString;
                is_default: z.ZodBoolean;
                display_attributes: z.ZodOptional<z.ZodArray<z.ZodObject<{
                    axis_id: z.ZodString;
                    axis_name: z.ZodString;
                    value_id: z.ZodString;
                    value_name: z.ZodString;
                }, z.core.$strip>>>;
                images: z.ZodOptional<z.ZodArray<z.ZodString>>;
            }, z.core.$strip>>;
            variant_details: z.ZodOptional<z.ZodObject<{
                variant_id: z.ZodString;
                sku: z.ZodOptional<z.ZodString>;
                properties: z.ZodRecord<z.ZodString, z.ZodString>;
            }, z.core.$strip>>;
            base_price: z.ZodString;
            add_ons_price: z.ZodString;
            total_price: z.ZodString;
            item_discount_amount: z.ZodString;
            price_info: z.ZodObject<{
                base_price: z.ZodString;
                final_price: z.ZodString;
                markup_percentage: z.ZodString;
                markup_amount: z.ZodString;
                markup_discount_percentage: z.ZodString;
                markup_discount_amount: z.ZodString;
            }, z.core.$strip>;
            add_on_option_ids: z.ZodArray<z.ZodString>;
            add_on_ids: z.ZodArray<z.ZodString>;
            add_on_details: z.ZodObject<{
                selected_options: z.ZodArray<z.ZodObject<{
                    option_id: z.ZodString;
                    add_on_id: z.ZodString;
                    name: z.ZodString;
                    price: z.ZodString;
                    quantity: z.ZodNumber;
                    is_required: z.ZodBoolean;
                    selected_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
                    price_info: z.ZodOptional<z.ZodUnknown>;
                }, z.core.$strip>>;
                total_add_on_price: z.ZodString;
                add_ons: z.ZodArray<z.ZodObject<{
                    add_on_id: z.ZodString;
                    name: z.ZodString;
                    min_selections: z.ZodNumber;
                    max_selections: z.ZodNumber;
                    selected_options: z.ZodArray<z.ZodString>;
                    is_required: z.ZodBoolean;
                }, z.core.$strip>>;
            }, z.core.$strip>;
            add_on_options: z.ZodArray<z.ZodObject<{
                id: z.ZodString;
                name: z.ZodString;
                is_required: z.ZodBoolean;
                description: z.ZodOptional<z.ZodString>;
                price: z.ZodOptional<z.ZodString>;
                image_url: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>>;
            add_ons: z.ZodArray<z.ZodObject<{
                id: z.ZodString;
                name: z.ZodString;
                is_multiple_allowed: z.ZodBoolean;
                min_selections: z.ZodNumber;
                max_selections: z.ZodNumber;
                required: z.ZodBoolean;
                options: z.ZodArray<z.ZodObject<{
                    id: z.ZodString;
                    name: z.ZodString;
                    is_required: z.ZodBoolean;
                    description: z.ZodOptional<z.ZodString>;
                    price: z.ZodOptional<z.ZodString>;
                    image_url: z.ZodOptional<z.ZodString>;
                }, z.core.$strip>>;
            }, z.core.$strip>>;
            scheduled_start: z.ZodOptional<z.ZodString>;
            scheduled_end: z.ZodOptional<z.ZodString>;
            staff_id: z.ZodOptional<z.ZodString>;
            resource_id: z.ZodOptional<z.ZodString>;
            service_status: z.ZodOptional<z.ZodEnum<{
                pending: "pending";
                confirmed: "confirmed";
                completed: "completed";
                cancelled: "cancelled";
            }>>;
            confirmation_code: z.ZodOptional<z.ZodString>;
            special_instructions: z.ZodOptional<z.ZodString>;
            customer_inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
                field_id: z.ZodString;
                field_name: z.ZodOptional<z.ZodString>;
                field_type: z.ZodOptional<z.ZodString>;
                value: z.ZodUnknown;
            }, z.core.$strip>>>;
            bundle_selections: z.ZodOptional<z.ZodUnknown>;
            bundle_resolved: z.ZodOptional<z.ZodObject<{
                bundle_id: z.ZodString;
                selections: z.ZodArray<z.ZodUnknown>;
            }, z.core.$loose>>;
            composite_selections: z.ZodOptional<z.ZodUnknown>;
            composite_resolved: z.ZodOptional<z.ZodObject<{
                composite_id: z.ZodString;
                selections: z.ZodArray<z.ZodUnknown>;
                breakdown: z.ZodOptional<z.ZodObject<{
                    base_price: z.ZodString;
                    components_total: z.ZodString;
                    final_price: z.ZodString;
                    tier_applied: z.ZodOptional<z.ZodString>;
                }, z.core.$strip>>;
            }, z.core.$loose>>;
            billing_plan_id: z.ZodOptional<z.ZodString>;
            applied_discount_ids: z.ZodArray<z.ZodString>;
            discount_details: z.ZodOptional<z.ZodObject<{
                applied_count: z.ZodNumber;
                total_amount: z.ZodString;
                discount_ids: z.ZodArray<z.ZodString>;
            }, z.core.$strip>>;
            metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            created_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
            updated_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
        }, z.core.$loose>>;
        pricing: z.ZodObject<{
            subtotal: z.ZodString;
            total_discounts: z.ZodString;
            tax_amount: z.ZodString;
            service_charge: z.ZodString;
            total_price: z.ZodString;
            currency: z.ZodString;
            tax_rate: z.ZodOptional<z.ZodString>;
            service_charge_rate: z.ZodOptional<z.ZodString>;
            tax_inclusive: z.ZodBoolean;
            deposit_required: z.ZodBoolean;
            deposit_amount: z.ZodString;
        }, z.core.$strip>;
        customer_info: z.ZodObject<{
            name: z.ZodString;
            email: z.ZodOptional<z.ZodString>;
            phone: z.ZodOptional<z.ZodString>;
            address: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>;
        created_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
        updated_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
        expires_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
        status: z.ZodString;
        source: z.ZodString;
        channel: z.ZodString;
    }, z.core.$loose>;
    readonly CartItem: z.ZodObject<{
        id: z.ZodString;
        cart_id: z.ZodString;
        item_id: z.ZodString;
        quantity: z.ZodNumber;
        line_key: z.ZodString;
        line_type: z.ZodEnum<{
            service: "service";
            digital: "digital";
            bundle: "bundle";
            composite: "composite";
            simple: "simple";
        }>;
        name: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        image_url: z.ZodOptional<z.ZodString>;
        category_id: z.ZodOptional<z.ZodString>;
        category_name: z.ZodOptional<z.ZodString>;
        is_available: z.ZodBoolean;
        variant_id: z.ZodOptional<z.ZodString>;
        variant_name: z.ZodOptional<z.ZodString>;
        variant_info: z.ZodOptional<z.ZodObject<{
            id: z.ZodString;
            name: z.ZodString;
            sku: z.ZodOptional<z.ZodString>;
            price: z.ZodString;
            price_adjustment: z.ZodString;
            is_default: z.ZodBoolean;
            display_attributes: z.ZodOptional<z.ZodArray<z.ZodObject<{
                axis_id: z.ZodString;
                axis_name: z.ZodString;
                value_id: z.ZodString;
                value_name: z.ZodString;
            }, z.core.$strip>>>;
            images: z.ZodOptional<z.ZodArray<z.ZodString>>;
        }, z.core.$strip>>;
        variant_details: z.ZodOptional<z.ZodObject<{
            variant_id: z.ZodString;
            sku: z.ZodOptional<z.ZodString>;
            properties: z.ZodRecord<z.ZodString, z.ZodString>;
        }, z.core.$strip>>;
        base_price: z.ZodString;
        add_ons_price: z.ZodString;
        total_price: z.ZodString;
        item_discount_amount: z.ZodString;
        price_info: z.ZodObject<{
            base_price: z.ZodString;
            final_price: z.ZodString;
            markup_percentage: z.ZodString;
            markup_amount: z.ZodString;
            markup_discount_percentage: z.ZodString;
            markup_discount_amount: z.ZodString;
        }, z.core.$strip>;
        add_on_option_ids: z.ZodArray<z.ZodString>;
        add_on_ids: z.ZodArray<z.ZodString>;
        add_on_details: z.ZodObject<{
            selected_options: z.ZodArray<z.ZodObject<{
                option_id: z.ZodString;
                add_on_id: z.ZodString;
                name: z.ZodString;
                price: z.ZodString;
                quantity: z.ZodNumber;
                is_required: z.ZodBoolean;
                selected_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
                price_info: z.ZodOptional<z.ZodUnknown>;
            }, z.core.$strip>>;
            total_add_on_price: z.ZodString;
            add_ons: z.ZodArray<z.ZodObject<{
                add_on_id: z.ZodString;
                name: z.ZodString;
                min_selections: z.ZodNumber;
                max_selections: z.ZodNumber;
                selected_options: z.ZodArray<z.ZodString>;
                is_required: z.ZodBoolean;
            }, z.core.$strip>>;
        }, z.core.$strip>;
        add_on_options: z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            name: z.ZodString;
            is_required: z.ZodBoolean;
            description: z.ZodOptional<z.ZodString>;
            price: z.ZodOptional<z.ZodString>;
            image_url: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        add_ons: z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            name: z.ZodString;
            is_multiple_allowed: z.ZodBoolean;
            min_selections: z.ZodNumber;
            max_selections: z.ZodNumber;
            required: z.ZodBoolean;
            options: z.ZodArray<z.ZodObject<{
                id: z.ZodString;
                name: z.ZodString;
                is_required: z.ZodBoolean;
                description: z.ZodOptional<z.ZodString>;
                price: z.ZodOptional<z.ZodString>;
                image_url: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
        scheduled_start: z.ZodOptional<z.ZodString>;
        scheduled_end: z.ZodOptional<z.ZodString>;
        staff_id: z.ZodOptional<z.ZodString>;
        resource_id: z.ZodOptional<z.ZodString>;
        service_status: z.ZodOptional<z.ZodEnum<{
            pending: "pending";
            confirmed: "confirmed";
            completed: "completed";
            cancelled: "cancelled";
        }>>;
        confirmation_code: z.ZodOptional<z.ZodString>;
        special_instructions: z.ZodOptional<z.ZodString>;
        customer_inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
            field_id: z.ZodString;
            field_name: z.ZodOptional<z.ZodString>;
            field_type: z.ZodOptional<z.ZodString>;
            value: z.ZodUnknown;
        }, z.core.$strip>>>;
        bundle_selections: z.ZodOptional<z.ZodUnknown>;
        bundle_resolved: z.ZodOptional<z.ZodObject<{
            bundle_id: z.ZodString;
            selections: z.ZodArray<z.ZodUnknown>;
        }, z.core.$loose>>;
        composite_selections: z.ZodOptional<z.ZodUnknown>;
        composite_resolved: z.ZodOptional<z.ZodObject<{
            composite_id: z.ZodString;
            selections: z.ZodArray<z.ZodUnknown>;
            breakdown: z.ZodOptional<z.ZodObject<{
                base_price: z.ZodString;
                components_total: z.ZodString;
                final_price: z.ZodString;
                tier_applied: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>>;
        }, z.core.$loose>>;
        billing_plan_id: z.ZodOptional<z.ZodString>;
        applied_discount_ids: z.ZodArray<z.ZodString>;
        discount_details: z.ZodOptional<z.ZodObject<{
            applied_count: z.ZodNumber;
            total_amount: z.ZodString;
            discount_ids: z.ZodArray<z.ZodString>;
        }, z.core.$strip>>;
        metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        created_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
        updated_at: z.ZodUnion<readonly [z.ZodISODateTime, z.ZodString]>;
    }, z.core.$loose>;
    readonly CartPricing: z.ZodObject<{
        subtotal: z.ZodString;
        total_discounts: z.ZodString;
        tax_amount: z.ZodString;
        service_charge: z.ZodString;
        total_price: z.ZodString;
        currency: z.ZodString;
        tax_rate: z.ZodOptional<z.ZodString>;
        service_charge_rate: z.ZodOptional<z.ZodString>;
        tax_inclusive: z.ZodBoolean;
        deposit_required: z.ZodBoolean;
        deposit_amount: z.ZodString;
    }, z.core.$strip>;
    readonly CheckoutBody: z.ZodObject<{
        cart_id: z.ZodString;
        location_id: z.ZodOptional<z.ZodString>;
        customer: z.ZodObject<{
            name: z.ZodString;
            email: z.ZodString;
            phone: z.ZodString;
            notes: z.ZodOptional<z.ZodString>;
            save_details: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strip>;
        order_type: z.ZodString;
        address_info: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        payment_method: z.ZodString;
        mobile_money_details: z.ZodOptional<z.ZodObject<{
            phone_number: z.ZodString;
            provider: z.ZodString;
        }, z.core.$strip>>;
        special_instructions: z.ZodOptional<z.ZodString>;
        metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        pay_currency: z.ZodOptional<z.ZodString>;
        fx_quote_id: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>;
    readonly CheckoutResponse: z.ZodObject<{
        order_id: z.ZodString;
        order_number: z.ZodString;
        payment_status: z.ZodString;
        payment_reference: z.ZodOptional<z.ZodString>;
        requires_authorization: z.ZodBoolean;
        authorization_type: z.ZodOptional<z.ZodEnum<{
            phone: "phone";
            address: "address";
            otp: "otp";
            pin: "pin";
            birthday: "birthday";
        }>>;
        next_action: z.ZodDiscriminatedUnion<[z.ZodObject<{
            type: z.ZodLiteral<"none">;
        }, z.core.$strip>, z.ZodObject<{
            type: z.ZodLiteral<"redirect">;
            authorization_url: z.ZodString;
        }, z.core.$strip>, z.ZodObject<{
            type: z.ZodLiteral<"authorization">;
            authorization_type: z.ZodString;
            display_text: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>], "type">;
        provider: z.ZodOptional<z.ZodString>;
        authorization_url: z.ZodOptional<z.ZodString>;
        display_text: z.ZodOptional<z.ZodString>;
        bill_token: z.ZodOptional<z.ZodString>;
        client_secret: z.ZodOptional<z.ZodString>;
        public_key: z.ZodOptional<z.ZodString>;
    }, z.core.$loose>;
    readonly VariantInfo: z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        sku: z.ZodOptional<z.ZodString>;
        price: z.ZodString;
        price_adjustment: z.ZodString;
        is_default: z.ZodBoolean;
        display_attributes: z.ZodOptional<z.ZodArray<z.ZodObject<{
            axis_id: z.ZodString;
            axis_name: z.ZodString;
            value_id: z.ZodString;
            value_name: z.ZodString;
        }, z.core.$strip>>>;
        images: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>;
};
type PublicSchemaName = keyof typeof PUBLIC_SCHEMAS;
/**
 * Export all public schemas as JSON Schema (Draft 2020-12). Handy for
 * a CI contract-snapshot — diff `schemas.json` against the Rust
 * backend's emitted `openapi.json` to catch drift at PR time.
 */
declare function exportJsonSchemas(): Record<PublicSchemaName, Record<string, unknown>>;
/**
 * Read every schema currently in the cimplifyRegistry along with its
 * metadata. Useful for tooling that wants to discover available
 * schemas dynamically (e.g. an agent prompt generator).
 */
declare function listRegisteredSchemas(): Array<{
    schema: z.ZodType;
    meta: CimplifySchemaMeta;
}>;

export { type AddItemPayload, AddItemPayloadSchema, AddOnDetailsSchema, AddOnGroupDetailsSchema, AddOnInDetailsSchema, AddOnOptionDetailsSchema, AuthorizationTypeSchema, type Brand, BrandContactSchema, BrandFaqSchema, BrandHeroSchema, BrandNavLinkSchema, BrandPolicyPageSchema, BrandPolicySectionSchema, BrandSchema, BrandSocialSchema, BundleResolvedSchema, BundleSelectionInputSchema, type Cart, type CartItem, CartItemSchema, CartPricingSchema, CartSchema, type CheckoutBody, CheckoutBodySchema, CheckoutCustomerSchema, type CheckoutResponse, CheckoutResponseSchema, ChosenPriceSchema, type CimplifySchemaMeta, CompositeResolvedSchema, CompositeSelectionInputSchema, CountryCodeSchema, CurrencyCodeSchema, CustomerInputValueSchema, DiscountDetailsSchema, IsoDateTimeSchema, LineTypeSchema, LocaleSchema, MoneyLooseSchema, MoneySchema, NextActionSchema, PhoneE164Schema, ProductTypeSchema, type PublicSchemaName, SchemaViolationError, SeedNameSchema, SelectedAddOnOptionSchema, ServiceStatusSchema, TimestampSchema, VariantDetailsSchema, VariantDisplayAttributeSchema, VariantInfoSchema, assertAddItemPayload, assertBrand, assertCart, assertCartItem, assertCheckoutBody, assertCheckoutResponse, cimplifyRegistry, exportJsonSchemas, listRegisteredSchemas, makeAssertion, registerSchema };
