validate: (
target: any,
propertyKey: string,
descriptor: TypedPropertyDescriptor<(...args: any[]) => any>,
) => void & {
ctor: <T extends new (...args: any[]) => any>(
ctor: T,
) => { prototype: __type<any>; new (...args: any[]): __type<T> } & T;
required: (
target: object,
propertyKey: string | symbol,
parameterIndex: number,
) => void;
} = ...