import type { ValidationResult } from 'node_modules/@feedmepos/ui-library/dist/composables/useValidation';
import { type AdjustmentAmount } from './number';
import type { ISelectItem } from '@feedmepos/ui-library';
import type { FdoDecimal } from '@feedmepos/core/entity';
export declare function Required(): (val: string) => true | "Required";
export declare function isAdjustmentAmount(val: any): val is AdjustmentAmount;
export declare function AtLeast(amount: number | AdjustmentAmount, message?: string | ((current: number) => string)): (val: any) => string | true;
export declare function MoreThan(amount: number | AdjustmentAmount): (val: any, message?: string | ((current: number) => string) | undefined) => string | true;
export declare function Between(lowerInclusive: Date, upperExclusive: Date): {
    (val: string): ValidationResult;
};
export declare function Between(lowerInclusive: number, upperExclusive: number): {
    (val: string): ValidationResult;
};
export declare function IsNumeric(): (maybeNumber: string) => true | "Must be a number";
export declare function MaximumPrecision(precision: number): {
    (val: string): ValidationResult;
};
export declare function MaximumPrecision(unit: FdoInventoryUnit, measurement?: FdoUnitMeasurement | null): {
    (val: string): ValidationResult;
};
export declare function MaximumPrecisionLiteral(precision: number, message?: string | ((precision: number) => string)): (val: string) => string | true;
export declare function Unique(pool: ISelectItem[], current?: any, message?: (item: ISelectItem) => string): (value: any) => string | true;
export declare function MultipleOf(n: number): {
    (val: any): ValidationResult;
};
export declare function MultipleOf(n: FdoDecimal): {
    (val: any): ValidationResult;
};
