interface ILinguixMessage { type: string; id: string; payload?: any; [key: string]: any; } interface ILinguixContentMessenger { sendToBackground(message: ILinguixMessage): void; onBackgroundMessage(callback: (message: ILinguixMessage) => void): void; destroy(): void; } interface ILinguixBackgroundMessenger { sendToContent(message: ILinguixMessage): void; onContentMessage(callback: (message: ILinguixMessage) => void): void; destroy(): void; } interface ILinguixTextStats { wordsCount: number; charsCount: number; avgWordLength: number; avgSentenceLength: number; sentencesCount: number; fleschIndex: number; textScore: number; readingTimeSeconds: number; speakingTimeSeconds: number; } interface ILinguixConfig { url?: string; apiKey?: string; options?: { query?: { clientToken?: string; }; }; customTagNames?: { highlighter?: string; alert?: string; bar?: string; }; features?: { bar?: boolean; }; language?: string; callbacks?: ILinguixCallbacks; } interface ILinguixCallbacks { onCheckResultReceived?: (result: { textStats?: ILinguixTextStats; alertsCount: number; }) => void; onReplacementApplied?: (data: { originalText: string; replacement: string; description: string; }) => void; } interface ILinguixElementConfig { callbacks?: ILinguixCallbacks; } type SupportedElement = HTMLTextAreaElement | HTMLElement; type ILinguixMessenger = ILinguixContentMessenger | ILinguixBackgroundMessenger; declare class LinguixCheckerSDK { private replacementEdits; static initialize(config: ILinguixConfig, messenger?: ILinguixMessenger): void; static attachToElement(element: SupportedElement, options?: ILinguixElementConfig): void; static detachFromElement(element: SupportedElement): void; static destroy(): void; } declare const LinguixHighlighterElement: { new (): {}; }; interface ILinguixHighlighterElement extends HTMLElement { } declare let highlighterTagName: string; declare function defineHighlighterElement(customTagName?: string): void; declare const LinguixAlertPopover: { new (): {}; }; interface ILinguixAlertPopover { } declare let alertPopoverTagName: string; declare function defineAlertElement(customTagName?: string): void; declare const LinguixBarElement: { new (): {}; }; interface ILinguixBarElement extends HTMLElement { } declare let barTagName: string; declare function defineBarElement(customTagName?: string): void; export { type ILinguixAlertPopover, type ILinguixBackgroundMessenger, type ILinguixBarElement, type ILinguixCallbacks, type ILinguixConfig, type ILinguixContentMessenger, type ILinguixElementConfig, type ILinguixHighlighterElement, type ILinguixMessage, type ILinguixTextStats, LinguixAlertPopover, LinguixBarElement, LinguixCheckerSDK, LinguixHighlighterElement, alertPopoverTagName, barTagName, defineAlertElement, defineBarElement, defineHighlighterElement, highlighterTagName };