import type { EmptyObject } from '@ariestools/sdk'; import type { AbstractControl } from './AbstractControl.js'; /** Tracks the current and previous cursor offsets in a masked input. */ export interface CursorPosition { current: number | undefined; previous: number | undefined; } /** Validation hooks and pattern rules for a form control. */ export interface FormControlValidator { blurError?: (value: string) => void; changeError?: (value: string) => void; pattern?: RegExp; patternStrict?: RegExp; required?: boolean; } /** Masking and cursor helpers for transforming displayed form values. */ export interface FormControlMask { cursorPosition: CursorPosition; getCursorPosition?: () => number | undefined; mask?: (value: string) => string; onCursorChange?: (cursor: number | undefined) => void; unmask?: (value: string) => string; } /** Form field control combining validation, masking, and abstract control state. */ export interface FormControl extends FormControlValidator, FormControlMask, AbstractControl { readonly name?: string; props: TProps; } //# sourceMappingURL=FormControl.d.ts.map