import type { Stack } from '@contentstack/delivery-sdk'; /** * Personalize SDK instance (client-side only). * Provides instance methods: set(), triggerImpression(), triggerImpressions(), * triggerEvent(), setUserId(), getUserId(), getVariants(), getVariantAliases(). * Returns null on server — server personalization is handled by the middleware. */ export interface PersonalizeSdkInstance { set: (attributes: Record) => Promise; triggerImpression: (experienceShortUid: string) => Promise; triggerImpressions: (options: { experienceShortUids?: string[]; aliases?: string[]; }) => Promise; triggerEvent: (eventKey: string) => Promise; setUserId: (userId: string, options?: { preserveUserAttributes?: boolean; }) => Promise; getUserId: () => string; getVariants: () => Record; getVariantAliases: () => string[]; getVariantParam: () => string; getActiveVariant: (experienceShortUid: string) => string | null; addStateToResponse: (response: Response) => Promise; } export interface ContentstackContext { stack: Stack; livePreviewEnabled: boolean; editableTags: boolean; variantAlias?: { value: string; }; ContentstackLivePreview: any; /** Personalize SDK instance — available on client only, null on server */ personalizeSdk: PersonalizeSdkInstance | null; VB_EmptyBlockParentClass: string; } /** * Typed accessor for the Contentstack plugin provides. * Avoids repeated `useNuxtApp().$contentstack as { ... }` casts. */ export declare function useContentstack(): ContentstackContext;