export interface Indexable { [key: string]: any; } export interface ValidationError { error: string; message?: string; path?: string; value: any; } export interface Validator { (value: any): ValidationError[] | undefined; } export interface ErrorMessageCallback { (error: string, value: any): string | undefined; } export interface Options { message?: string | ErrorMessageCallback; } export interface Schema { [key: string]: Validator; } export declare function matchesBoolean(options?: Options): Validator; export declare function matchesString(options?: Options): Validator; export declare function matchesPositiveInteger(options?: Options): Validator; export declare function matchesPositiveNumber(options?: Options): Validator; /** * Returns a validator that matches values in the given enum * @param type - enum to use for match values * @public */ export declare function matchesEnum(types: Indexable, options?: Options): Validator; export declare function matchesArray(validator?: Validator, options?: Options): Validator; export declare function matchesObject(schema: Schema, options?: Options): Validator; export declare function makeOptional(validator: Validator): (value: any) => ValidationError[] | undefined; export declare function composeSchemas(...validators: Validator[]): Validator; export declare function validate(obj: any, validator: Validator | Validator): { path: string | undefined; error: string; message?: string | undefined; value: any; }[] | undefined;