export interface GroupsOptions {
    groups?: string[];
}
export type Validator = (options?: GroupsOptions) => PropertyDecorator;
export type ValidatorFactory<T extends any[] = []> = (...args: T) => Validator;
/**
 * `@Expose()` from class-transformer is not stackable,
 * wrap it in a new `@Expose()` implementation to stack for `groups` options.
 */
export declare const Expose: Validator;
export declare const partialGroups: (...groups: string[]) => (...decorators: Validator[]) => PropertyDecorator;
export declare const IsOptional: ValidatorFactory;
export declare const IsDefined: ValidatorFactory;
export declare const IsUnique: ValidatorFactory<[string]>;
export declare const IsSingleValue: ValidatorFactory;
export declare const IsMultiValue: ValidatorFactory;
export declare const IsURLValue: ValidatorFactory;
export declare const IsVersionValue: ValidatorFactory;
export declare const IsSwitchValue: ValidatorFactory;
export declare const IsNamedValue: ValidatorFactory;
export declare const IsEnumValue: ValidatorFactory<[Record<string, unknown>]>;
export declare const IsNestedValue: ValidatorFactory<[{
    new (): object;
}]>;
