import { ApiPropertyOptions, Clazz } from '@joktec/core';
import { PropType } from '@typegoose/typegoose';
import { BasePropOptions, MapPropOptions, VirtualOptions } from '@typegoose/typegoose/lib/types';
import { ArrayPropOptions, BoolPropOptions, DatePropOptions, EnumPropOptions, NumberPropOptions, StringPropOptions } from './props';
export type TypegooseProp = BasePropOptions | StringPropOptions | NumberPropOptions | DatePropOptions | EnumPropOptions | BoolPropOptions | ArrayPropOptions | MapPropOptions | VirtualOptions;
export type IPropOptions<T = any> = TypegooseProp & {
    hidden?: boolean;
    nested?: boolean;
    example?: T | Clazz<T>;
    comment?: string;
    strictRef?: boolean;
    deprecated?: boolean;
    groups?: string[];
    decorators?: PropertyDecorator[];
    swagger?: ApiPropertyOptions;
    useGQL?: boolean;
};
export declare const Prop: <T = any>(opts?: IPropOptions<T>, kind?: PropType) => PropertyDecorator;
//# sourceMappingURL=prop.decorator.d.ts.map