export interface FormField { key: K; label: string; value: string; cursor?: number; hint?: string; error?: string; section?: string; truncate?: "end" | "start"; } export interface FormState = FormField> { fields: Record; focus: K; order: K[]; } export interface RequiredValidationResult = FormField> { ok: boolean; state: FormState; } export declare function createForm = FormField>(fields: F[], focus?: K): FormState; export declare function moveFocus>(state: FormState, delta: number): FormState; export declare function setFocus>(state: FormState, key: K): FormState; export declare function appendChar>(state: FormState, char: string): FormState; export declare function backspace>(state: FormState): FormState; export declare function deleteForward>(state: FormState): FormState; export declare function moveFieldCursor>(state: FormState, delta: number): FormState; export declare function moveFieldCursorHome>(state: FormState): FormState; export declare function moveFieldCursorEnd>(state: FormState): FormState; export declare function moveFieldCursorWordLeft>(state: FormState): FormState; export declare function moveFieldCursorWordRight>(state: FormState): FormState; export declare function backspaceFieldWord>(state: FormState): FormState; export declare function deleteFieldWord>(state: FormState): FormState; export declare function validateRequired>(state: FormState, keys?: K[]): RequiredValidationResult; export declare function value>(state: FormState, key: K): string; export declare function setValue>(state: FormState, key: K, newValue: string, cursor?: number): FormState;