import { PropertyOptions } from '../core';
export type EnumValue<T extends number | string> = T[] | Record<string, T>;
export type EnumOptions<T extends number | string> = Record<string, EnumValue<T>>;
/**
 * Usage:
 * ```ts
 * enum OneOrTwo { One = 1, Two = 2, }
 * IsEnum({ enum: { OneOrTwo } })
 *
 * IsEnum({ enum: { OneOrTwo: [1, 2] } })
 * ```
 */
export declare const IsEnum: <T extends string | number>({ enum: enumOptions, ...base }: PropertyOptions<T, {
    enum: EnumOptions<T>;
}>) => PropertyDecorator;
