import { Cart, Contact, Customer, GraphQLClient } from '@propeller-commerce/propeller-sdk-v2'; export interface LoginFormProps { /** * GraphQL client for self-contained login. * When provided (and onLoginSubmit is not), the component handles * authentication internally via LoginService + UserService. */ graphqlClient?: GraphQLClient; /** Title of the login form * @default "Log in" */ title?: string; /** Subtitle of the login form * @default "" */ subtitle?: string; /** Show/hide the password reset link * @default true */ displayForgotPasswordLink?: boolean; /** Action for the password reset link click */ onForgotPasswordClick?: (event?: any) => void; /** Show/hide the registration link * @default true */ displayRegisterLink?: boolean; /** Action for the registration link click */ onRegisterClick?: (event?: any) => void; /** Show/hide the guest checkout link * @default true */ displayGuestCheckoutLink?: boolean; /** Action for the guest checkout link click */ onGuestCheckoutClick?: (event?: any) => void; /** Label for the submit button * @default "Login" */ buttonText?: string; /** * Labels for the login form fields. * * Available keys: * - email: Email field label (default: "Email") * - password: Password field label (default: "Password") * - emailPlaceholder: Email input placeholder (default: "name@example.com") * - passwordPlaceholder: Password input placeholder (default: "••••••••") * - forgotPassword: Forgot password link text (default: "Forgot password?") * - registerText: Text before register link (default: "Don't have an account?") * - registerLink: Register link text (default: "Create an Account") * - guestCheckoutLink: Guest checkout link text (default: "Continue as Guest") */ labels?: Record; /** * Fires when login form is submitted (delegation mode). * When provided, the component does NOT call the SDK — the parent handles authentication. * When absent and graphqlClient is provided, the component handles login internally. */ onLoginSubmit?: (email: string, password: string) => void; /** Whether login is currently in progress (shows loading state on button). * Used in delegation mode. Ignored in self-contained mode. * @default false */ loginLoading?: boolean; /** Error message to display in the form. * Used in delegation mode. In self-contained mode the component manages its own error. */ loginError?: string; /** Callback before the login process starts */ beforeLogin?: () => void; /** Callback after successful login with user data. * `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 authenticated user's cart. */ afterLogin?: (user: Contact | Customer, accessToken?: string, refreshToken?: string, expiresAt?: string, anonymousCart?: Cart | null) => void; /** Anonymous cart snapshot from the parent's store/state — forwarded to `afterLogin`. */ cart?: Cart | null; /** * Show login form in dropdown for immediate login when user is not logged in. * @default true */ accountHeaderLoginForm?: boolean; /** Config object providing imageSearchFiltersGrid and imageVariantFiltersSmall. */ configuration?: any; } declare function __VLS_template(): { attrs: Partial<{}>; slots: { emailField?(_: { email: string; onEmailChange: (value: string) => void; labels: Record | undefined; }): any; passwordField?(_: { password: string; onPasswordChange: (value: string) => void; labels: Record | undefined; displayForgotPassword: boolean; }): any; errorMessage?(_: { error: string; }): any; submitButton?(_: { isLoading: boolean; buttonText: string; labels: Record | undefined; }): any; registerLink?(_: { onClick: (e: any) => void | undefined; labels: Record | undefined; }): any; registerLink?(_: { onClick: (e: any) => void | undefined; labels: Record | undefined; }): any; guestCheckoutButton?(_: { onClick: (e: any) => void | undefined; labels: Record | undefined; }): any; forgotPasswordLink?(_: { onClick: (e: any) => void | undefined; labels: Record | undefined; }): any; }; refs: {}; rootEl: HTMLDivElement; }; type __VLS_TemplateResult = ReturnType; declare const __VLS_component: import('vue').DefineComponent & Readonly<{}>, { displayForgotPasswordLink: boolean; displayRegisterLink: boolean; displayGuestCheckoutLink: boolean; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>; declare const _default: __VLS_WithTemplateSlots; export default _default; type __VLS_WithTemplateSlots = T & { new (): { $slots: S; }; };