import { Component } from 'vue'; import { Product, GraphQLClient } from '@propeller-commerce/propeller-sdk-v2'; export interface ProductTabsProps { /** Product for which to display the information. */ product: Product; /** If true, displays the Description tab. Defaults to true. */ showDescription?: boolean; /** If true, displays the Specifications tab. Defaults to true. */ showSpecifications?: boolean; /** If true, displays the Downloads tab. Defaults to true. */ showDownloads?: boolean; /** If true, displays the Videos tab. Defaults to true. */ showVideos?: boolean; /** * Language code passed to all sub-components. * Defaults to 'NL'. */ language?: string; /** * Override the tab button labels. * Available keys: description, specifications, downloads, videos */ labels?: Record; /** * When true, the description is initially collapsed to `descriptionMaxLength` characters. * A "Read more" / "Read less" toggle is shown. * Passed as `collapsed` to ProductDescription. Defaults to false. */ descriptionCollapsed?: boolean; /** * Maximum number of characters shown when the description is collapsed. * Passed as `maxLength` to ProductDescription. Defaults to 0 (no truncation). */ descriptionMaxLength?: number; /** * Initialised Propeller SDK GraphQL client. * Passed to ProductSpecifications for internal attribute fetching. */ graphqlClient?: GraphQLClient; /** * Product ID to fetch attributes for. * Passed to ProductSpecifications for internal attribute fetching. */ productId?: number; /** * Display layout for the specifications. * 'table' — two-column table (name | value). Default. * 'list' — vertical label + value stacked rows. * Passed as `layout` to ProductSpecifications. */ specificationsLayout?: string; /** * When true, groups specifications by their group field with a heading per section. * When false or omitted, displays a flat ungrouped table. Default: false. * Passed as `grouping` to ProductSpecifications. */ specificationsGrouping?: boolean; /** * Extra package-description string rendered in the specifications section * (e.g. contents / packaging notes). Passed as `packageDescription` to * ProductSpecifications. */ specificationsPackageDescription?: string; /** * Override UI strings for the Downloads section. * Available keys: title, download * Passed as `labels` to ProductDownloads. */ downloadsLabels?: Record; /** * Override UI strings for the Videos section. * Available key: title * Passed as `labels` to ProductVideos. */ videosLabels?: Record; /** Extra CSS class applied to the root element. */ className?: string; productDescriptionComponent?: Component; productSpecificationsComponent?: Component; productDownloadsComponent?: Component; productVideosComponent?: Component; } declare function __VLS_template(): { attrs: Partial<{}>; slots: { specificationsBefore?(_: any): any; specificationsBefore?(_: any): any; specificationsAfter?(_: any): any; specificationsAfter?(_: any): any; }; refs: {}; rootEl: any; }; type __VLS_TemplateResult = ReturnType; declare const __VLS_component: import('vue').DefineComponent & Readonly<{}>, { showDescription: boolean; showSpecifications: boolean; showDownloads: boolean; showVideos: boolean; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>; declare const _default: __VLS_WithTemplateSlots; export default _default; type __VLS_WithTemplateSlots = T & { new (): { $slots: S; }; };