import { Cart, Contact, Customer, GraphQLClient } from '@propeller-commerce/propeller-sdk-v2'; export interface RegisterFormProps { /** GraphQL client for the Propeller SDK. Resolved from PropellerProvider when omitted. */ graphqlClient?: GraphQLClient; /** Title of the register form * @default "Create account" */ title?: string; /** Subtitle of the register form * @default "" */ subtitle?: string; /** Label for the submit button * @default "Register" */ buttonText?: string; /** * Enable choosing between Contact or Customer if null, * otherwise proceed with one user type registration only. * 'Contact' = Company account (has company name, VAT, CoC fields) * 'Customer' = Consumer/personal account * @default null */ showUserType?: 'Contact' | 'Customer' | null; /** * Required fields for the registration form. * Available field names: firstName, middleName, lastName, email, password, * phone, mobile, gender, companyName, vatNumber, cocNumber, * street, number, numberExtension, postalCode, city, country * @default [] */ requiredFields?: string[]; /** * When true (default) the new contact/customer is automatically logged in * after registration: the SDK access token is set on the GraphQL client and * forwarded to `afterRegistration` so the parent can populate auth state. * When false, registration completes server-side but no session is kept; * `afterRegistration` is called without tokens so the parent can redirect * the user to the login page. * @default true */ automaticLogin?: boolean; /** * Labels for the registration form fields. * * Available keys: * - firstName, middleName, lastName, email, password, confirmPassword * - phone, gender, companyName, vatNumber, cocNumber * - street, number, numberExtension, postalCode, city, country * - userTypeLabel, contactLabel, customerLabel * - emailPlaceholder, passwordPlaceholder, passwordMismatch * - billingAddressTitle, deliveryAddressTitle, sameAsDelivery * - loginText, loginLink * - personalDetailsTitle, passwordTitle */ labels?: Record; /** Callback before the registration process starts */ beforeRegistration?: () => void; /** Callback after the user is registered. * `anonymousCart` is the cart held in the parent's store/state at the moment of submission, * forwarded so the parent can merge it into the new user's cart. */ afterRegistration?: (user: Contact | Customer, accessToken?: string, refreshToken?: string, expiresAt?: string, anonymousCart?: Cart | null) => void; /** Anonymous cart snapshot from the parent's store/state — forwarded to `afterRegistration`. */ cart?: Cart | null; /** Action for the login link click */ onLoginClick?: () => void; /** Show/hide the login link * @default true */ displayLoginLink?: boolean; /** * Prefered language * @default 'NL' */ preferredLanguage?: string; /** * List of countries to display in the country dropdown * @default {} */ countries?: Record; } declare const _default: import('vue').DefineComponent & Readonly<{}>, { automaticLogin: boolean; displayLoginLink: boolean; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>; export default _default;