id-auto-formalizer
Version:
Konversi teks Bahasa Indonesia dari kasual ke formal untuk surat, email, dan laporan resmi
235 lines (201 loc) • 5.21 kB
TypeScript
// TypeScript definitions for id-auto-formalizer
declare module 'id-auto-formalizer' {
/**
* Options untuk proses formalisasi
*/
export interface FormalizeOptions {
/**
* Aktifkan auto kapitalisasi
* @default true
*/
autoCapitalize?: boolean;
/**
* Aktifkan auto punctuation
* @default true
*/
autoPunctuation?: boolean;
}
/**
* Hasil analisis formalitas
*/
export interface FormalityAnalysis {
/**
* Skor formalitas (0-100)
*/
score: number;
/**
* Level formalitas dalam bahasa
*/
level: 'Sangat Informal' | 'Informal' | 'Semi Formal' | 'Formal' | 'Sangat Formal';
/**
* Jumlah kata informal yang ditemukan
*/
informalWords: number;
/**
* Total kata dalam teks
*/
totalWords: number;
}
/**
* Saran perbaikan untuk teks
*/
export interface ImprovementSuggestion {
/**
* Tipe saran
*/
type: 'word' | 'capitalization' | 'punctuation';
/**
* Posisi dalam teks (index kata atau karakter)
*/
position: number;
/**
* Teks original
*/
original: string;
/**
* Saran pengganti
*/
suggestion: string;
/**
* Alasan saran
*/
reason: string;
}
/**
* Hasil batch processing
*/
export interface BatchResult {
/**
* Teks original
*/
original: string;
/**
* Teks yang sudah diformalisasi
*/
formalized: string;
/**
* Analisis formalitas
*/
analysis: FormalityAnalysis;
}
/**
* Statistik mapping
*/
export interface MappingStatistics {
/**
* Total jumlah mapping
*/
totalMappings: number;
/**
* Kategori mapping
*/
categories: {
pronouns: number;
verbs: number;
adjectives: number;
slang: number;
};
}
/**
* Dictionary mapping informal ke formal
*/
export interface InformalToFormalMap {
[key: string]: string;
}
/**
* Class utama Indonesian Formalizer
*/
export class IndonesianFormalizer {
constructor();
/**
* Mapping kata informal ke formal
*/
informalToFormal: InformalToFormalMap;
/**
* Formalisasi teks
* @param text - Teks yang akan diformalisasi
* @param options - Opsi formalisasi
* @returns Teks formal
*/
formalize(text: string, options?: FormalizeOptions): string;
/**
* Analisis tingkat formalitas teks
* @param text - Teks yang akan dianalisis
* @returns Hasil analisis
*/
analyzeFormalityLevel(text: string): FormalityAnalysis;
/**
* Dapatkan saran perbaikan
* @param text - Teks untuk mendapat saran
* @returns Array saran perbaikan
*/
suggestImprovements(text: string): ImprovementSuggestion[];
/**
* Proses batch untuk multiple teks
* @param texts - Array teks yang akan diproses
* @param options - Opsi formalisasi
* @returns Array hasil batch
*/
formalizeBatch(texts: string[], options?: FormalizeOptions): BatchResult[];
/**
* Tambah mapping kata tunggal
* @param informal - Kata informal
* @param formal - Kata formal pengganti
*/
addMapping(informal: string, formal: string): void;
/**
* Tambah multiple mapping
* @param mappings - Object berisi mapping
*/
addMappings(mappings: InformalToFormalMap): void;
/**
* Export semua mapping
* @returns Copy dari semua mapping
*/
exportMappings(): InformalToFormalMap;
/**
* Dapatkan statistik mapping
* @returns Statistik mapping
*/
getStatistics(): MappingStatistics;
/**
* Auto kapitalisasi teks
* @param text - Teks input
* @returns Teks dengan kapitalisasi yang benar
*/
autoCapitalize(text: string): string;
/**
* Auto punctuation teks
* @param text - Teks input
* @returns Teks dengan punctuation yang benar
*/
autoPunctuation(text: string): string;
}
/**
* Fungsi helper untuk formalisasi cepat
* @param text - Teks yang akan diformalisasi
* @param options - Opsi formalisasi
* @returns Teks formal
*/
export function formalize(text: string, options?: FormalizeOptions): string;
/**
* Fungsi helper untuk analisis
* @param text - Teks yang akan dianalisis
* @returns Hasil analisis formalitas
*/
export function analyze(text: string): FormalityAnalysis;
/**
* Fungsi helper untuk saran
* @param text - Teks untuk mendapat saran
* @returns Array saran perbaikan
*/
export function suggest(text: string): ImprovementSuggestion[];
/**
* Fungsi helper untuk batch processing
* @param texts - Array teks yang akan diproses
* @param options - Opsi formalisasi
* @returns Array hasil batch
*/
export function batch(texts: string[], options?: FormalizeOptions): BatchResult[];
export default IndonesianFormalizer;
}