import { Contact, Customer, GraphQLClient } from '@propeller-commerce/propeller-sdk-v2'; import { OrderSearchForm } from '../composables/vue/useOrders'; export interface OrderListProps { /** The authenticated user (Contact or Customer). Resolved from PropellerProvider when omitted. */ user?: Contact | Customer | null; /** Currency symbol to display. Defaults to '€'. */ currency?: string; /** The initialized GraphQL Client instance. Resolved from PropellerProvider when omitted. */ graphqlClient?: GraphQLClient; /** Callback when an order is clicked */ onOrderClick: (orderId: number) => void; /** Columns to display. Defaults to ['id', 'date', 'status', 'total', 'action'] */ columns?: string[]; /** Label mapping for columns */ columnConfig?: Record; /** Enable searching */ enableSearch?: boolean; /** Fields enabled for searching (UI inputs) */ searchFields?: string[]; /** * Seed the filter form on mount — typically rehydrated from the URL query so * a bookmarked/shared filtered view restores on reload. Pair with * `onSearchApply` so the page can keep the URL in sync when filters change. */ initialSearchForm?: OrderSearchForm; /** * Fires when the user applies or clears filters (the "Search"/"Clear" * buttons). Receives the active filter form. Use it to persist the filters * to the URL — the component owns no router, so the page decides how (and * whether) to reflect them in `location`. */ onSearchApply?: (form: OrderSearchForm) => void; /** Term fields configuration (backend) */ termFields?: any[]; /** Override company ID for order filtering (respects company switcher) */ companyId?: number; /** Filter orders by these statuses */ orderStatus?: string[]; /** Override base styles */ className?: string; /** Items per page default */ initialItemsPerPage?: number; /** Rows are clickable */ rowsClickable?: boolean; /** Show company orders */ showCompanyOrders?: boolean; /** Hide pagination controls. Defaults to false. */ hidePagination?: boolean; /** Hide the column header row. Defaults to false. */ hideHeader?: boolean; /** Drop the results container's card chrome (background/border/shadow). Defaults to false. */ flat?: boolean; /** Filter orders by channel IDs */ channelIds?: number[]; /** Format price */ formatPrice?: (price: number) => string; /** Format date */ formatDate?: (dateString: string) => string; /** Get status color */ getStatusColor?: (status: string) => string; /** * Localized display labels for order/quote statuses, keyed by the raw backend * status value (e.g. `{ NEW: 'Nieuw', CONFIRMED: 'Bevestigd', REQUEST: * 'Aangevraagd' }`). Unknown statuses fall back to the raw value. */ statusLabels?: Record; /** Localization labels */ labels?: { view?: string; previous?: string; next?: string; showingPage?: string; of?: string; noOrders?: string; loading?: string; order?: string; date?: string; status?: string; total?: string; action?: string; }; /** Callback when a new cart is created during re-order */ onCartCreated?: (cart: any) => void; /** Callback fired after all re-order items have been added */ afterReorder?: (cart: any) => void; /** Configuration object (imageSearchFiltersGrid, imageVariantFiltersSmall, etc.) */ configuration?: any; } declare const _default: import('vue').DefineComponent & Readonly<{}>, { flat: boolean; hideHeader: boolean; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>; export default _default;