import { Class, IDecorator } from "oly";
import { IJsonSchema } from "../interfaces";
export declare class SchemaDecorator implements IDecorator {
private options;
constructor(options: IJsonSchema | ((before: IJsonSchema) => IJsonSchema));
asClass(target: Class): void;
}
/**
* Sometimes @field is not enough.
@schema overrides or replaces the generated schema of a class.
*
* ```ts
* @schema({
* name: "Toto"
* })
* class A {
* }
*
* @schema(s => ({
* ...s,
* description: "test"
* }))
* class B {
* }
* ```
*/
export declare const schema: (data?: IJsonSchema | ((before: IJsonSchema) => IJsonSchema) | undefined, p?: string | undefined, i?: number | undefined) => (data?: object | Function | undefined, p?: string | undefined, i?: number | TypedPropertyDescriptor | undefined) => any;