/** * Vue consent context — injection key + shape. * * Phase 4: extracted from vue/index.ts. */ import type { InjectionKey, Ref } from 'vue'; import type { ConsentManager } from '../core/ConsentManager'; import type { ConsentCategories, ConsentCategory, ConsentState, } from '../types'; export interface ConsentContext { manager: Ref; consent: Ref; isInitialized: Ref; isLoading: Ref; isBannerVisible: Ref; needsConsent: Ref; hasConsent: (category: ConsentCategory) => boolean; acceptAll: () => Promise; rejectAll: () => Promise; saveSelection: (categories: Partial) => Promise; showBanner: () => void; hideBanner: () => void; showSettings: () => void; } export const CONSENT_KEY: InjectionKey = Symbol('consent');