import { S as StaleSplit, C as CatalogSnapshot, P as PricedLine, a as CheckoutDeps, b as CheckoutInput } from './types-BeD7EKkp.js';
export { c as CatalogEntry } from './types-BeD7EKkp.js';
import { Cart } from '@platform-modules/commerce-cart';
export { Cart, CartLine, PriceSnapshot } from '@platform-modules/commerce-cart';
import { VatRate } from '@platform-modules/tax/rates-table';
import * as _platform_modules_commerce_orders from '@platform-modules/commerce-orders';
import { OrdersSchema, Order } from '@platform-modules/commerce-orders';
export { BuyerRef, Order, OrderChargeConflictError, OrderIdempotencyConflictError, OrderNotFoundError, OrdersSchema, isOrderChargeConflictError, isOrderIdempotencyConflictError, isOrderNotFoundError } from '@platform-modules/commerce-orders';
export { reconcileStuckCharges } from './reconcile/index.js';
import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
import { Querier } from '@platform-modules/db';
export { ChargeResult, IntentStore, PaymentProvider } from '@platform-modules/billing';
import '@platform-modules/commerce-fulfillment';

type CheckoutValidationReason = 'EMPTY_CART' | 'STALE_ITEMS' | 'CURRENCY_MISMATCH' | 'INVALID_CHARGE_KEY' | 'UNKNOWN_COUNTRY' | 'INVALID_QTY';
declare class CheckoutValidationError extends Error {
    readonly reason: CheckoutValidationReason;
    readonly stale?: StaleSplit | undefined;
    readonly name = "CheckoutValidationError";
    readonly code: "CHECKOUT_VALIDATION";
    readonly httpStatus: 400 | 409 | 422;
    constructor(reason: CheckoutValidationReason, stale?: StaleSplit | undefined);
}
declare class OrderNotChargeableError extends Error {
    readonly orderId: string;
    readonly name = "OrderNotChargeableError";
    readonly code: "ORDER_NOT_CHARGEABLE";
    readonly httpStatus: 409;
    constructor(orderId: string);
}
declare class PaymentFailedError extends Error {
    readonly cause: unknown;
    readonly name = "PaymentFailedError";
    readonly code: "PAYMENT_FAILED";
    readonly httpStatus: 402;
    constructor(cause: unknown);
}
declare class FulfillmentIncompleteError extends Error {
    readonly context: {
        orderId: string;
        overall: 'partial' | 'unfulfillable';
        failures: {
            lineId: string;
            error: string;
        }[];
    };
    readonly name = "FulfillmentIncompleteError";
    readonly code: "FULFILLMENT_INCOMPLETE";
    readonly httpStatus: 500;
    constructor(context: {
        orderId: string;
        overall: 'partial' | 'unfulfillable';
        failures: {
            lineId: string;
            error: string;
        }[];
    });
}

declare function isCheckoutValidationError(e: unknown): e is CheckoutValidationError;
declare function isOrderNotChargeableError(e: unknown): e is OrderNotChargeableError;
declare function isPaymentFailedError(e: unknown): e is PaymentFailedError;
declare function isFulfillmentIncompleteError(e: unknown): e is FulfillmentIncompleteError;

declare function buildChargeKey(orderId: string): string;
declare function parseOrderId(chargeKey: string): string;

type ValidateCheckoutInput = {
    cart: Cart;
    catalog: CatalogSnapshot;
    currency: string;
    priceMode: 'inclusive' | 'exclusive';
    vatRate: VatRate;
};
type ValidateCheckoutResult = {
    ok: true;
    lines: PricedLine[];
} | {
    ok: false;
    error: 'EMPTY_CART' | 'STALE_ITEMS' | 'CURRENCY_MISMATCH' | 'INVALID_QTY';
    stale?: StaleSplit;
};
declare function validateCheckout(input: ValidateCheckoutInput): ValidateCheckoutResult;

declare function startCheckout<S extends OrdersSchema>(deps: CheckoutDeps<S>, input: CheckoutInput): Promise<{
    orderId: string;
    clientSecret?: string;
}>;

declare function settleCheckout<S extends OrdersSchema>(deps: CheckoutDeps<S>, orderId: string, providerRef: string, providerAmount?: number): Promise<Order>;

declare function getCheckoutStatus<S extends OrdersSchema>(deps: CheckoutDeps<S>, orderId: string, buyerRef: {
    userId: string;
}): Promise<{
    status: Order['status'];
    clientSecret?: string;
}>;

declare const checkoutSession: drizzle_orm_pg_core.PgTableWithColumns<{
    name: "checkout_session";
    schema: undefined;
    columns: {
        orderId: drizzle_orm_pg_core.PgColumn<{
            name: "order_id";
            tableName: "checkout_session";
            dataType: "string";
            columnType: "PgUUID";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: true;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        clientSecret: drizzle_orm_pg_core.PgColumn<{
            name: "client_secret";
            tableName: "checkout_session";
            dataType: "string";
            columnType: "PgText";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        createdAt: drizzle_orm_pg_core.PgColumn<{
            name: "created_at";
            tableName: "checkout_session";
            dataType: "date";
            columnType: "PgTimestamp";
            data: Date;
            driverParam: string;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        updatedAt: drizzle_orm_pg_core.PgColumn<{
            name: "updated_at";
            tableName: "checkout_session";
            dataType: "date";
            columnType: "PgTimestamp";
            data: Date;
            driverParam: string;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
    };
    dialect: "pg";
}>;
declare const checkoutSchema: {
    checkoutSession: drizzle_orm_pg_core.PgTableWithColumns<{
        name: "checkout_session";
        schema: undefined;
        columns: {
            orderId: drizzle_orm_pg_core.PgColumn<{
                name: "order_id";
                tableName: "checkout_session";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: true;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            clientSecret: drizzle_orm_pg_core.PgColumn<{
                name: "client_secret";
                tableName: "checkout_session";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            createdAt: drizzle_orm_pg_core.PgColumn<{
                name: "created_at";
                tableName: "checkout_session";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            updatedAt: drizzle_orm_pg_core.PgColumn<{
                name: "updated_at";
                tableName: "checkout_session";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
        };
        dialect: "pg";
    }>;
};
type CheckoutSchema = typeof checkoutSchema;
declare const checkoutDbSchema: {
    order: drizzle_orm_pg_core.PgTableWithColumns<{
        name: "order";
        schema: undefined;
        columns: {
            id: drizzle_orm_pg_core.PgColumn<{
                name: "id";
                tableName: "order";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: true;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            buyerUserId: drizzle_orm_pg_core.PgColumn<{
                name: "buyer_user_id";
                tableName: "order";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: false;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            buyerGuestEmail: drizzle_orm_pg_core.PgColumn<{
                name: "buyer_guest_email";
                tableName: "order";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: false;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            status: drizzle_orm_pg_core.PgColumn<{
                name: "status";
                tableName: "order";
                dataType: "string";
                columnType: "PgText";
                data: _platform_modules_commerce_orders.OrderStatus;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {
                $type: _platform_modules_commerce_orders.OrderStatus;
            }>;
            currency: drizzle_orm_pg_core.PgColumn<{
                name: "currency";
                tableName: "order";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            priceMode: drizzle_orm_pg_core.PgColumn<{
                name: "price_mode";
                tableName: "order";
                dataType: "string";
                columnType: "PgText";
                data: _platform_modules_commerce_orders.PriceMode;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {
                $type: _platform_modules_commerce_orders.PriceMode;
            }>;
            subtotal: drizzle_orm_pg_core.PgColumn<{
                name: "subtotal";
                tableName: "order";
                dataType: "bigint";
                columnType: "PgBigInt64";
                data: bigint;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            tax: drizzle_orm_pg_core.PgColumn<{
                name: "tax";
                tableName: "order";
                dataType: "bigint";
                columnType: "PgBigInt64";
                data: bigint;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            discount: drizzle_orm_pg_core.PgColumn<{
                name: "discount";
                tableName: "order";
                dataType: "bigint";
                columnType: "PgBigInt64";
                data: bigint;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            total: drizzle_orm_pg_core.PgColumn<{
                name: "total";
                tableName: "order";
                dataType: "bigint";
                columnType: "PgBigInt64";
                data: bigint;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            chargeRef: drizzle_orm_pg_core.PgColumn<{
                name: "charge_ref";
                tableName: "order";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: false;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            failureReason: drizzle_orm_pg_core.PgColumn<{
                name: "failure_reason";
                tableName: "order";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: false;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            idempotencyKey: drizzle_orm_pg_core.PgColumn<{
                name: "idempotency_key";
                tableName: "order";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            requestHash: drizzle_orm_pg_core.PgColumn<{
                name: "request_hash";
                tableName: "order";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            createdAt: drizzle_orm_pg_core.PgColumn<{
                name: "created_at";
                tableName: "order";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            updatedAt: drizzle_orm_pg_core.PgColumn<{
                name: "updated_at";
                tableName: "order";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
        };
        dialect: "pg";
    }>;
    orderLine: drizzle_orm_pg_core.PgTableWithColumns<{
        name: "order_line";
        schema: undefined;
        columns: {
            id: drizzle_orm_pg_core.PgColumn<{
                name: "id";
                tableName: "order_line";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: true;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            orderId: drizzle_orm_pg_core.PgColumn<{
                name: "order_id";
                tableName: "order_line";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            variantId: drizzle_orm_pg_core.PgColumn<{
                name: "variant_id";
                tableName: "order_line";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            kind: drizzle_orm_pg_core.PgColumn<{
                name: "kind";
                tableName: "order_line";
                dataType: "string";
                columnType: "PgText";
                data: _platform_modules_commerce_orders.ProductKind;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {
                $type: _platform_modules_commerce_orders.ProductKind;
            }>;
            qty: drizzle_orm_pg_core.PgColumn<{
                name: "qty";
                tableName: "order_line";
                dataType: "number";
                columnType: "PgInteger";
                data: number;
                driverParam: string | number;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            unitPrice: drizzle_orm_pg_core.PgColumn<{
                name: "unit_price";
                tableName: "order_line";
                dataType: "bigint";
                columnType: "PgBigInt64";
                data: bigint;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            lineTotal: drizzle_orm_pg_core.PgColumn<{
                name: "line_total";
                tableName: "order_line";
                dataType: "bigint";
                columnType: "PgBigInt64";
                data: bigint;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            vendorId: drizzle_orm_pg_core.PgColumn<{
                name: "vendor_id";
                tableName: "order_line";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: false;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            createdAt: drizzle_orm_pg_core.PgColumn<{
                name: "created_at";
                tableName: "order_line";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
        };
        dialect: "pg";
    }>;
    vendorSplit: drizzle_orm_pg_core.PgTableWithColumns<{
        name: "vendor_split";
        schema: undefined;
        columns: {
            id: drizzle_orm_pg_core.PgColumn<{
                name: "id";
                tableName: "vendor_split";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: true;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            orderId: drizzle_orm_pg_core.PgColumn<{
                name: "order_id";
                tableName: "vendor_split";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            vendorId: drizzle_orm_pg_core.PgColumn<{
                name: "vendor_id";
                tableName: "vendor_split";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: false;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            amount: drizzle_orm_pg_core.PgColumn<{
                name: "amount";
                tableName: "vendor_split";
                dataType: "bigint";
                columnType: "PgBigInt64";
                data: bigint;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            funder: drizzle_orm_pg_core.PgColumn<{
                name: "funder";
                tableName: "vendor_split";
                dataType: "string";
                columnType: "PgText";
                data: "platform" | "vendor";
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {
                $type: "platform" | "vendor";
            }>;
            createdAt: drizzle_orm_pg_core.PgColumn<{
                name: "created_at";
                tableName: "vendor_split";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
        };
        dialect: "pg";
    }>;
    orderStep: drizzle_orm_pg_core.PgTableWithColumns<{
        name: "order_step";
        schema: undefined;
        columns: {
            id: drizzle_orm_pg_core.PgColumn<{
                name: "id";
                tableName: "order_step";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: true;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            orderId: drizzle_orm_pg_core.PgColumn<{
                name: "order_id";
                tableName: "order_step";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            stepId: drizzle_orm_pg_core.PgColumn<{
                name: "step_id";
                tableName: "order_step";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            result: drizzle_orm_pg_core.PgColumn<{
                name: "result";
                tableName: "order_step";
                dataType: "json";
                columnType: "PgJsonb";
                data: unknown;
                driverParam: unknown;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            createdAt: drizzle_orm_pg_core.PgColumn<{
                name: "created_at";
                tableName: "order_step";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
        };
        dialect: "pg";
    }>;
    refundIntent: drizzle_orm_pg_core.PgTableWithColumns<{
        name: "refund_intent";
        schema: undefined;
        columns: {
            id: drizzle_orm_pg_core.PgColumn<{
                name: "id";
                tableName: "refund_intent";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: true;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            orderId: drizzle_orm_pg_core.PgColumn<{
                name: "order_id";
                tableName: "refund_intent";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            seq: drizzle_orm_pg_core.PgColumn<{
                name: "seq";
                tableName: "refund_intent";
                dataType: "number";
                columnType: "PgInteger";
                data: number;
                driverParam: string | number;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            amount: drizzle_orm_pg_core.PgColumn<{
                name: "amount";
                tableName: "refund_intent";
                dataType: "bigint";
                columnType: "PgBigInt64";
                data: bigint;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            status: drizzle_orm_pg_core.PgColumn<{
                name: "status";
                tableName: "refund_intent";
                dataType: "string";
                columnType: "PgText";
                data: "pending" | "failed" | "executed";
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {
                $type: "pending" | "failed" | "executed";
            }>;
            refundKey: drizzle_orm_pg_core.PgColumn<{
                name: "refund_key";
                tableName: "refund_intent";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            providerRef: drizzle_orm_pg_core.PgColumn<{
                name: "provider_ref";
                tableName: "refund_intent";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: false;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            createdAt: drizzle_orm_pg_core.PgColumn<{
                name: "created_at";
                tableName: "refund_intent";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            updatedAt: drizzle_orm_pg_core.PgColumn<{
                name: "updated_at";
                tableName: "refund_intent";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
        };
        dialect: "pg";
    }>;
    checkoutSession: drizzle_orm_pg_core.PgTableWithColumns<{
        name: "checkout_session";
        schema: undefined;
        columns: {
            orderId: drizzle_orm_pg_core.PgColumn<{
                name: "order_id";
                tableName: "checkout_session";
                dataType: "string";
                columnType: "PgUUID";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: true;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            clientSecret: drizzle_orm_pg_core.PgColumn<{
                name: "client_secret";
                tableName: "checkout_session";
                dataType: "string";
                columnType: "PgText";
                data: string;
                driverParam: string;
                notNull: true;
                hasDefault: false;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: [string, ...string[]];
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            createdAt: drizzle_orm_pg_core.PgColumn<{
                name: "created_at";
                tableName: "checkout_session";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
            updatedAt: drizzle_orm_pg_core.PgColumn<{
                name: "updated_at";
                tableName: "checkout_session";
                dataType: "date";
                columnType: "PgTimestamp";
                data: Date;
                driverParam: string;
                notNull: true;
                hasDefault: true;
                isPrimaryKey: false;
                isAutoincrement: false;
                hasRuntimeDefault: false;
                enumValues: undefined;
                baseColumn: never;
                identity: undefined;
                generated: undefined;
            }, {}, {}>;
        };
        dialect: "pg";
    }>;
};
type CheckoutDbSchema = typeof checkoutDbSchema;

declare class CheckoutMigrateError extends Error {
    readonly detail: string;
    readonly name = "CheckoutMigrateError";
    readonly code: "CHECKOUT_MIGRATE";
    constructor(detail: string);
}
declare function isCheckoutMigrateError(e: unknown): e is CheckoutMigrateError;
declare function pushSchema(db: Querier<CheckoutSchema>): Promise<void>;

export { CatalogSnapshot, type CheckoutDbSchema, CheckoutDeps, CheckoutInput, CheckoutMigrateError, type CheckoutSchema, CheckoutValidationError, type CheckoutValidationReason, FulfillmentIncompleteError, OrderNotChargeableError, PaymentFailedError, PricedLine, StaleSplit, type ValidateCheckoutInput, type ValidateCheckoutResult, buildChargeKey, checkoutDbSchema, checkoutSchema, checkoutSession, getCheckoutStatus, isCheckoutMigrateError, isCheckoutValidationError, isFulfillmentIncompleteError, isOrderNotChargeableError, isPaymentFailedError, parseOrderId, pushSchema, settleCheckout, startCheckout, validateCheckout };
