export interface IRequiredOptions {
    /**
     * Show a warning instead of throwing an error if validation fails.
     */
    warnOnly?: boolean;
    /**
     * Custom message to display when validation fails.
     */
    message?: string;
    /**
     * Optional predicate for further validation of the value.
     */
    condition?: (value: any) => boolean;
}
/**
 * Marks a property as required and injects runtime validation into `willUpdate()`.
 * Use options to control whether it throws, logs a warning, or checks additional conditions.
 *
 * @example
 * ```ts
 * @Required()
 * foo: string;
 *
 * @Required({
 *   warnOnly: true,
 *   message: 'start must be a valid future date',
 *   condition: v => v instanceof Date && v > new Date()
 * })
 * start: Date;
 * ```
 *
 * @public
 */
export declare function Required(options?: IRequiredOptions): PropertyDecorator;
//# sourceMappingURL=RequiredDecorator.d.ts.map