import type { AppConfig } from '@nuxt/schema'; import type { ComponentConfig } from '@nuxt/ui'; import theme from '#build/ui-pro/pricing-table'; import type { PricingPlanProps } from '../types'; type PricingTable = ComponentConfig; type DynamicSlots = { [K in T['id'] as K extends string ? S extends string ? (K | `${K}-${S}`) : K : never]?: (props: { tier: Extract; }) => any; }; export type PricingTableTier = Pick & { id: string; [key: string]: any; }; export type PricingTableSectionFeature = { title: string; tiers?: { [K in Extract]: boolean | number | string; } & Record; }; export interface PricingTableSection { title: string; features: PricingTableSectionFeature[]; } export interface PricingTableProps { /** * The element or component this component should render as. * @defaultValue 'div' */ as?: any; /** * The caption to display above the table. * @defeaultValue t('pricingTable.caption') */ caption?: string; /** * The pricing tiers to display in the table. * Each tier represents a pricing plan with its own title, description, price, and features. */ tiers: T[]; /** * The sections of features to display in the table. * Each section contains a title and a list of features with their availability in each tier. */ sections: PricingTableSection[]; class?: any; ui?: PricingTable['slots']; } type SlotProps = (props: { tier: T; }) => any; export type PricingTableSlots = { 'caption': (props?: {}) => any; 'tier': SlotProps; 'tier-title': SlotProps; 'tier-description': SlotProps; 'tier-badge': SlotProps; 'tier-button': SlotProps; 'tier-billing': SlotProps; 'tier-discount': SlotProps; 'tier-price': SlotProps; } & DynamicSlots; declare const _default: (__VLS_props: NonNullable>["props"], __VLS_ctx?: __VLS_PrettifyLocal>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable>["expose"], __VLS_setup?: Promise<{ props: __VLS_PrettifyLocal & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, never> & PricingTableProps & Partial<{}>> & import("vue").PublicProps; expose(exposed: import("vue").ShallowUnwrapRef<{}>): void; attrs: any; slots: PricingTableSlots; emit: {}; }>) => import("vue").VNode & { __ctx?: Awaited; }; export default _default; type __VLS_PrettifyLocal = { [K in keyof T]: T[K]; } & {};