import { Plugin, InjectionKey } from 'vue'; import { BlarioConfig, DiagnosticResponse, User } from '../../../core/src'; export interface BlarioPluginOptions { publishableKey: string; apiBaseUrl?: string; user?: User; locale?: 'en' | 'es'; capture?: { console?: boolean; networkSample?: boolean; maxConsoleLogs?: number; maxNetworkLogs?: number; }; theme?: { mode?: 'light' | 'dark'; position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'; accent?: string; className?: string; }; redaction?: { patterns?: RegExp[]; customRedactor?: (text: string) => string; }; rateLimit?: { maxRequests?: number; windowMs?: number; }; onAfterSubmit?: (issueId: string) => void; onError?: (error: Error) => void; } export interface BlarioState { config: BlarioConfig; isModalOpen: boolean; reporterOptions: { category?: string; prefill?: Record; }; lastDiagnostic: DiagnosticResponse | null; isSubmitting: boolean; user?: User; locale: 'en' | 'es'; } export interface BlarioActions { openReporter: (options?: { category?: string; prefill?: Record; }) => void; closeReporter: () => void; submitIssue: (formData: any) => Promise; clearDiagnostic: () => void; } export type BlarioContext = { state: Readonly; actions: BlarioActions; }; export declare const BlarioKey: InjectionKey; export declare const BlarioPlugin: Plugin; declare module '@vue/runtime-core' { interface ComponentCustomProperties { $blario: BlarioContext; } } //# sourceMappingURL=BlarioPlugin.d.ts.map