import { ValidationArguments, ValidationOptions } from 'class-validator';
import { PropertyOptions } from '../core';
export type CustomValidateOptions<T = unknown> = {
    validator: (value: T, args: ValidationArguments) => boolean;
    message: string | ((validationArguments: ValidationArguments) => string);
};
export declare const IsString: ({ maxLength, minLength, pattern, canBeEmpty, isEmail, isDate, customValidate, ...base }?: PropertyOptions<string, {
    canBeEmpty?: boolean | undefined;
    maxLength?: number | undefined;
    minLength?: number | undefined;
    pattern?: {
        regex: RegExp;
        message?: ValidationOptions['message'];
    } | undefined;
    isEmail?: true | undefined;
    isDate?: {
        format: 'date' | 'date-time';
    } | undefined;
    customValidate?: CustomValidateOptions<unknown> | undefined;
}>) => PropertyDecorator;
