import { RuntypeBase } from './runtype'; declare type PropKey = string | symbol; /** * A parameter decorator. Explicitly mark the parameter as checked on every method call in combination with `@checked` method decorator. The number of `@check` params must be the same as the number of provided runtypes into `@checked`.\ * Usage: * ```ts * @checked(Runtype1, Runtype3) * method(@check p1: Static1, p2: number, @check p3: Static3) { ... } * ``` */ export declare function check(target: any, propertyKey: PropKey, parameterIndex: number): void; /** * A method decorator. Takes runtypes as arguments which correspond to the ones of the actual method. * * Usually, the number of provided runtypes must be _**the same as**_ or _**less than**_ the actual parameters. * * If you explicitly mark which parameter shall be checked using `@check` parameter decorator, the number of `@check` parameters must be _**the same as**_ the runtypes provided into `@checked`. * * Usage: * ```ts * @checked(Runtype1, Runtype2) * method1(param1: Static1, param2: Static2, param3: any) { * ... * } * * @checked(Runtype1, Runtype3) * method2(@check param1: Static1, param2: any, @check param3: Static3) { * ... * } * ``` */ export declare function checked(...runtypes: RuntypeBase[]): (target: any, propertyKey: PropKey, descriptor: PropertyDescriptor) => void; export {};