@linguix.com/lx-checker-sdk
Version:
Linguix Grammar Checker SDK
96 lines (86 loc) • 3.29 kB
TypeScript
import { IBaseCheckableElement, ElementRect, AlertRect } from '@textly/lx-checker-dom-lib';
import { CheckerAlert } from '@textly/lx-checker-lib';
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;
};
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 {
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 {
initialize(checkable: IBaseCheckableElement, hasApiSubscription: boolean): void;
setHasApiSubscription(hasApiSubscription: boolean): void;
updateElementBox(elementBox: ElementRect): void;
destroy(): void;
}
declare let highlighterTagName: string;
declare function defineHighlighterElement(customTagName?: string): void;
declare const LinguixAlertPopover: {
new (): {};
};
interface ILinguixAlertPopover {
initialize(checkable: IBaseCheckableElement, alert: CheckerAlert, rect: AlertRect, hasApiSubscription: boolean): void;
}
declare let alertPopoverTagName: string;
declare function defineAlertElement(customTagName?: string): void;
export { type ILinguixAlertPopover, type ILinguixBackgroundMessenger, type ILinguixCallbacks, type ILinguixConfig, type ILinguixContentMessenger, type ILinguixElementConfig, type ILinguixHighlighterElement, type ILinguixMessage, type ILinguixTextStats, LinguixAlertPopover, LinguixCheckerSDK, LinguixHighlighterElement, alertPopoverTagName, defineAlertElement, defineHighlighterElement, highlighterTagName };