import { Address, CartAddress, Gender, GraphQLClient, OrderAddress, WarehouseAddress, YesNo } from '@propeller-commerce/propeller-sdk-v2'; export interface AddressCardProps { /** GraphQL client for the Propeller SDK (only needed when editing) */ graphqlClient?: GraphQLClient; /** The address to display (Address | CartAddress | WarehouseAddress | OrderAddress) */ address: Address | CartAddress | WarehouseAddress | OrderAddress | null; /** Display company name @default true */ showCompanyName?: boolean; /** Display salutation (Mr./Mrs.) @default true */ showSalutation?: boolean; /** Display full name @default true */ showFullName?: boolean; /** Display street @default true */ showStreet?: boolean; /** Display house number and extension @default true */ showNumberExtension?: boolean; /** Display postal code @default true */ showPostalCode?: boolean; /** Display city @default true */ showCity?: boolean; /** Display country name @default true */ showCountry?: boolean; /** Display email @default false */ showEmail?: boolean; /** Display phone @default false */ showPhone?: boolean; /** Display action buttons (edit, delete, set default) @default true */ enableActions?: boolean; /** Display Edit button @default true */ enableEdit?: boolean; /** Display Delete button @default true */ enableDelete?: boolean; /** Display Set Default button @default true */ enableSetDefault?: boolean; /** Display the "Default ... Address" badge @default false */ showDefaultBadge?: boolean; /** * Display the address-type badge (invoice/delivery chip) @default true. * Set to `false` where the surrounding heading already names the address * type, to avoid a redundant raw-looking chip. */ showTypeBadge?: boolean; /** Called when address is edited; receives the updated address object */ onEdit?: (address: Address) => void | Promise; /** Called after address edit completes */ afterEdit?: (address: Address) => void | Promise; /** Called when address is deleted; receives the address ID */ onDelete?: (addressId: Address) => void; /** Called after address deletion completes */ afterDelete?: (addressId: Address) => void; /** Called when address is set as default */ onSetDefault?: (address: Address) => void; /** Called after address is set as default */ afterSetDefault?: (address: Address) => void; /** List of countries for the country dropdown [{code: 'NL', name: 'Netherlands'}, ...] */ countries?: { code: string; name: string; }[]; /** When true, renders in "new address" mode: auto-opens the edit form, hides the card body */ isNew?: boolean; /** Called when the form is cancelled in new mode */ onCancel?: () => void; /** When true, renders the form inline instead of in a modal overlay. @default false */ inline?: boolean; /** Address type for new addresses (e.g., 'DELIVERY', 'INVOICE'). Used when creating, not editing. */ addressType?: string; /** Show ICP/ICS (intra-community supply) checkbox. @default false */ showIcp?: boolean; /** Title for the form or section */ title?: string; /** Labels for form fields and buttons */ labels?: Record; /** Called before save starts */ beforeSave?: () => void; } interface AddressCardState { showEditModal: boolean; showDeleteConfirm: boolean; localAddress: any; editCompany: string; editGender: Gender; editFirstName: string; editMiddleName: string; editLastName: string; editStreet: string; editNumber: string; editNumberExtension: string; editPostalCode: string; editCity: string; editCountry: string; editEmail: string; editPhone: string; editNotes: string; editIcp: YesNo; saving: boolean; getLabel: (key: string, fallback: string) => string; getCountryName: (code: string) => string; addr: any; showCard: boolean; formTitle: string; openEditModal: () => void; handleSaveEdit: (e: any) => Promise; confirmDelete: () => void; handleSetDefault: () => void; closeEditModal: () => void; } declare function openEditModal(): ReturnType; declare function handleSetDefault(): ReturnType; declare function __VLS_template(): { attrs: Partial<{}>; slots: { typeBadge?(_: { address: any; addressType: string; addressTypeLabel: string; }): any; name?(_: { address: any; fullName: string; salutation: any; }): any; addressLines?(_: { address: any; streetLine: string; cityLine: string; }): any; country?(_: { address: any; countryName: string; }): any; defaultBadge?(_: { address: any; isDefault: boolean; addressType: any; }): any; actions?(_: { address: any; onEdit: typeof openEditModal; onDelete: () => void; onSetDefault: typeof handleSetDefault; saving: boolean; }): any; }; refs: {}; rootEl: HTMLDivElement; }; type __VLS_TemplateResult = ReturnType; declare const __VLS_component: import('vue').DefineComponent & Readonly<{}>, { showCompanyName: boolean; showSalutation: boolean; showFullName: boolean; showStreet: boolean; showNumberExtension: boolean; showPostalCode: boolean; showCity: boolean; showCountry: boolean; showEmail: boolean; showPhone: boolean; enableActions: boolean; enableEdit: boolean; enableDelete: boolean; enableSetDefault: boolean; showDefaultBadge: boolean; isNew: boolean; inline: boolean; showIcp: boolean; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>; declare const _default: __VLS_WithTemplateSlots; export default _default; type __VLS_WithTemplateSlots = T & { new (): { $slots: S; }; };