| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 | declare var ajv: {   (options?: ajv.Options): ajv.Ajv;  new (options?: ajv.Options): ajv.Ajv;}declare namespace ajv {  interface Ajv {    /**    * Validate data using schema    * Schema will be compiled and cached (using serialized JSON as key. [json-stable-stringify](https://github.com/substack/json-stable-stringify) is used to serialize.    * @param  {String|Object} schemaKeyRef key, ref or schema object    * @param  {Any} data to be validated    * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).    */    validate(schemaKeyRef: Object | string, data: any): boolean;    /**    * Create validating function for passed schema.    * @param  {Object} schema schema object    * @return {Function} validating function    */    compile(schema: Object): ValidateFunction;    /**    * Creates validating function for passed schema with asynchronous loading of missing schemas.    * `loadSchema` option should be a function that accepts schema uri and node-style callback.    * @this  Ajv    * @param {Object}   schema schema object    * @param {Function} callback node-style callback, it is always called with 2 parameters: error (or null) and validating function.    */    compileAsync(schema: Object, callback: (err: Error, validate: ValidateFunction) => any): void;    /**    * Adds schema to the instance.    * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.    * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.    */    addSchema(schema: Array<Object> | Object, key?: string): void;    /**    * Add schema that will be used to validate other schemas    * options in META_IGNORE_OPTIONS are alway set to false    * @param {Object} schema schema object    * @param {String} key optional schema key    */    addMetaSchema(schema: Object, key?: string): void;    /**    * Validate schema    * @param {Object} schema schema to validate    * @return {Boolean} true if schema is valid    */    validateSchema(schema: Object): boolean;    /**    * Get compiled schema from the instance by `key` or `ref`.    * @param  {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).    * @return {Function} schema validating function (with property `schema`).    */    getSchema(keyRef: string): ValidateFunction;    /**    * Remove cached schema(s).    * If no parameter is passed all schemas but meta-schemas are removed.    * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.    * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.    * @param  {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object    */    removeSchema(schemaKeyRef?: Object | string | RegExp): void;    /**    * Add custom format    * @param {String} name format name    * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)    */    addFormat(name: string, format: FormatValidator | FormatDefinition): void;    /**    * Define custom keyword    * @this  Ajv    * @param {String} keyword custom keyword, should be a valid identifier, should be different from all standard, custom and macro keywords.    * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.    */    addKeyword(keyword: string, definition: KeywordDefinition): void;    /**    * Get keyword definition    * @this  Ajv    * @param {String} keyword pre-defined or custom keyword.    * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.    */    getKeyword(keyword: string): Object | boolean;    /**    * Remove keyword    * @this  Ajv    * @param {String} keyword pre-defined or custom keyword.    */    removeKeyword(keyword: string): void;    /**    * Convert array of error message objects to string    * @param  {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.    * @param  {Object} options optional options with properties `separator` and `dataVar`.    * @return {String} human readable string with all errors descriptions    */    errorsText(errors?: Array<ErrorObject>, options?: ErrorsTextOptions): string;    errors?: Array<ErrorObject>;  }  interface Thenable <R> {    then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Thenable<U>;  }  interface ValidateFunction {    (      data: any,      dataPath?: string,      parentData?: Object | Array<any>,      parentDataProperty?: string | number,      rootData?: Object | Array<any>    ): boolean | Thenable<boolean>;    errors?: Array<ErrorObject>;    schema?: Object;  }  interface Options {    v5?: boolean;    allErrors?: boolean;    verbose?: boolean;    jsonPointers?: boolean;    uniqueItems?: boolean;    unicode?: boolean;    format?: string;    formats?: Object;    unknownFormats?: boolean | string | Array<string>;    schemas?: Array<Object> | Object;    ownProperties?: boolean;    missingRefs?: boolean | string;    extendRefs?: boolean | string;    loadSchema?: (uri: string, cb: (err: Error, schema: Object) => any) => any;    removeAdditional?: boolean | string;    useDefaults?: boolean | string;    coerceTypes?: boolean | string;    async?: boolean | string;    transpile?: string | ((code: string) => string);    meta?: boolean | Object;    validateSchema?: boolean | string;    addUsedSchema?: boolean;    inlineRefs?: boolean | number;    passContext?: boolean;    loopRequired?: number;    multipleOfPrecision?: number;    errorDataPath?: string;    messages?: boolean;    sourceCode?: boolean;    beautify?: boolean | Object;    cache?: Object;  }  type FormatValidator = string | RegExp | ((data: string) => boolean);  interface FormatDefinition {    validate: FormatValidator;    compare: (data1: string, data2: string) => number;    async?: boolean;  }  interface KeywordDefinition {    type?: string | Array<string>;    async?: boolean;    errors?: boolean | string;    // schema: false makes validate not to expect schema (ValidateFunction)    schema?: boolean;    modifying?: boolean;    valid?: boolean;    // one and only one of the following properties should be present    validate?: ValidateFunction | SchemaValidateFunction;    compile?: (schema: Object, parentSchema: Object) => ValidateFunction;    macro?: (schema: Object, parentSchema: Object) => Object;    inline?: (it: Object, keyword: string, schema: Object, parentSchema: Object) => string;  }  interface SchemaValidateFunction {    (      schema: Object,      data: any,      parentSchema?: Object,      dataPath?: string,      parentData?: Object | Array<any>,      parentDataProperty?: string | number    ): boolean | Thenable<boolean>;    errors?: Array<ErrorObject>;  }  interface ErrorsTextOptions {    separator?: string;    dataVar?: string;  }  interface ErrorObject {    keyword: string;    dataPath: string;    schemaPath: string;    params: ErrorParameters;    // Excluded if messages set to false.    message?: string;    // These are added with the `verbose` option.    schema?: Object;    parentSchema?: Object;    data?: any;  }  type ErrorParameters = RefParams | LimitParams | AdditionalPropertiesParams |                          DependenciesParams | FormatParams | ComparisonParams |                          MultipleOfParams | PatternParams | RequiredParams |                          TypeParams | UniqueItemsParams | CustomParams |                          PatternGroupsParams | PatternRequiredParams |                          SwitchParams | NoParams | EnumParams;  interface RefParams {    ref: string;  }  interface LimitParams {    limit: number;  }  interface AdditionalPropertiesParams {    additionalProperty: string;  }  interface DependenciesParams {    property: string;    missingProperty: string;    depsCount: number;    deps: string;  }  interface FormatParams {    format: string  }  interface ComparisonParams {    comparison: string;    limit: number | string;    exclusive: boolean;  }  interface MultipleOfParams {    multipleOf: number;  }  interface PatternParams {    pattern: string;  }  interface RequiredParams {    missingProperty: string;  }  interface TypeParams {    type: string;  }  interface UniqueItemsParams {    i: number;    j: number;  }  interface CustomParams {    keyword: string;  }  interface PatternGroupsParams {    reason: string;    limit: number;    pattern: string;  }  interface PatternRequiredParams {    missingPattern: string;  }  interface SwitchParams {    caseIndex: number;  }  interface NoParams {}  interface EnumParams {    allowedValues: Array<any>;  }}export = ajv;
 |