import type { SvelidateInputType } from "../../html";
import type { UnknownSvelidateForm } from "../core/output";
export declare type JsValidator<T = unknown> = (value: T, form: UnknownSvelidateForm) => string | undefined;
export declare type JsValidatorPredicate<T = unknown> = (value: T, form: UnknownSvelidateForm) => boolean;
export declare type HtmlValidator = {
    required?: boolean;
    pattern?: string;
    minLength?: number;
    maxLength?: number;
    min?: number | string;
    max?: number | string;
    accept?: string;
};
export declare type HtmlValidatorMapper<T extends SvelidateInputType = SvelidateInputType> = (inputType: T | undefined, form: UnknownSvelidateForm) => HtmlValidator;
export declare type ValidatorWrapper<T = unknown, I extends SvelidateInputType = SvelidateInputType> = Readonly<{
    js: JsValidator<T>;
    html: HtmlValidatorMapper<I>;
}>;
export declare type ValidatorGetterParam = (svelidateForm: UnknownSvelidateForm) => unknown;
