/** * @file tckn-vkn.validators.ts * @description Angular Reactive Forms için TCKN/VKN doğrulama fonksiyonları ve validator üreticileri. * @created 2026-04-24 * @license MIT * @see https://www.tcknvkn.com * @see https://www.tcknvkn.com/kutuphaneler/angular */ import type { ValidationErrors, ValidatorFn } from "@angular/forms"; /** * Validator davranışını özelleştiren seçenekler. */ export interface ValidatorOptions { /** * `true` ise boş değerler geçerli kabul edilir. * Zorunlu alanlar için Angular `Validators.required` ile birlikte kullanın. */ allowEmpty?: boolean; } /** * Angular form hata detaylarını taşıyan model. */ export interface ValidatorErrorDetail { /** Doğrulama sırasında üretilen hata mesajları. */ errors: string[]; /** Girişin yalnızca rakamlardan oluşan normalize edilmiş hali. */ value: string; } /** * Core doğrulama sonucunu taşıyan model. */ export interface ValidationResult { /** Tüm kurallar geçtiyse `true`, aksi halde `false`. */ valid: boolean; /** Girişin yalnızca rakamlardan oluşan normalize edilmiş hali. */ value: string; /** Doğrulama adımlarında oluşan hata mesajları. */ errors: string[]; } /** * Tek bir TCKN değerini algoritmik olarak doğrular. * * Bu fonksiyon `tc üret`, `tc no üret`, `tc oluştur` ve `tckn üret` * süreçlerinde üretilen değerlerin kontrolü için kullanılabilir. * Kaynaklar: * - https://www.tcknvkn.com/tc-uret * - https://www.tcknvkn.com/tc-no-uret * - https://www.tcknvkn.com/tc-uretici * - https://tcknvkn.com/tckn-uret * * @param input - Kullanıcıdan gelen ham TCKN metni. * @returns Normalize değer, geçerlilik ve hata listesi. */ export declare function validateTckn(input: string): ValidationResult; /** * Tek bir VKN değerini algoritmik olarak doğrular. * * Bu fonksiyon `vergi no üret`, `vkn üret` ve `vkn algoritması` * doğrulama adımlarında kullanılır. * Kaynaklar: * - https://www.tcknvkn.com/vergi-no-uret * - https://www.tcknvkn.com/vergi-no-uretici * - https://tcknvkn.com/vkn-uret * * @param input - Kullanıcıdan gelen ham VKN metni. * @returns Normalize değer, geçerlilik ve hata listesi. */ export declare function validateVkn(input: string): ValidationResult; /** * Birden fazla TCKN girdisini tek çağrıda doğrular. * * @param inputs - Doğrulanacak TCKN listesi. * @returns Her kayıt için doğrulama sonucu döndürür. */ export declare function validateMultipleTckn(inputs: string[]): ValidationResult[]; /** * Birden fazla VKN girdisini tek çağrıda doğrular. * * @param inputs - Doğrulanacak VKN listesi. * @returns Her kayıt için doğrulama sonucu döndürür. */ export declare function validateMultipleVkn(inputs: string[]): ValidationResult[]; /** * Verilen değeri TCKN algoritmasına göre Angular hata formatına dönüştürür. * * @param value - Doğrulanacak ham değer. * @param options - Davranış ayarları. * @returns Geçerliyse `null`, geçersizse `{ tckn: ValidatorErrorDetail }`. */ export declare function validateTcknValue(value: string, options?: ValidatorOptions): ValidationErrors | null; /** * Verilen değeri VKN algoritmasına göre Angular hata formatına dönüştürür. * * @param value - Doğrulanacak ham değer. * @param options - Davranış ayarları. * @returns Geçerliyse `null`, geçersizse `{ vkn: ValidatorErrorDetail }`. */ export declare function validateVknValue(value: string, options?: ValidatorOptions): ValidationErrors | null; /** * Angular Reactive Forms için TCKN `ValidatorFn` üretir. * * @param options - Davranış ayarları. * @returns Form kontrolü üzerinde TCKN doğrulaması yapan `ValidatorFn`. */ export declare function tcknValidator(options?: ValidatorOptions): ValidatorFn; /** * Angular Reactive Forms için VKN `ValidatorFn` üretir. * * @param options - Davranış ayarları. * @returns Form kontrolü üzerinde VKN doğrulaması yapan `ValidatorFn`. */ export declare function vknValidator(options?: ValidatorOptions): ValidatorFn;