| 
						 | 
						- declare var ajv: {
 -   (options?: ajv.Options): ajv.Ajv;
 -   new(options?: ajv.Options): ajv.Ajv;
 -   ValidationError: typeof AjvErrors.ValidationError;
 -   MissingRefError: typeof AjvErrors.MissingRefError;
 -   $dataMetaSchema: object;
 - }
 - 
 - declare namespace AjvErrors {
 -   class ValidationError extends Error {
 -     constructor(errors: Array<ajv.ErrorObject>);
 - 
 -     message: string;
 -     errors: Array<ajv.ErrorObject>;
 -     ajv: true;
 -     validation: true;
 -   }
 - 
 -   class MissingRefError extends Error {
 -     constructor(baseId: string, ref: string, message?: string);
 -     static message: (baseId: string, ref: string) => string;
 - 
 -     message: string;
 -     missingRef: string;
 -     missingSchema: string;
 -   }
 - }
 - 
 - declare namespace ajv {
 -   type ValidationError = AjvErrors.ValidationError;
 - 
 -   type MissingRefError = AjvErrors.MissingRefError;
 - 
 -   interface Ajv {
 -     /**
 -     * Validate data using schema
 -     * Schema will be compiled and cached (using serialized JSON as key, [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize by default).
 -     * @param  {string|object|Boolean} 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 | boolean, data: any): boolean | PromiseLike<any>;
 -     /**
 -     * Create validating function for passed schema.
 -     * @param  {object|Boolean} schema schema object
 -     * @return {Function} validating function
 -     */
 -     compile(schema: object | boolean): 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|Boolean} schema schema object
 -     * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped
 -     * @param {Function} callback optional node-style callback, it is always called with 2 parameters: error (or null) and validating function.
 -     * @return {PromiseLike<ValidateFunction>} validating function
 -     */
 -     compileAsync(schema: object | boolean, meta?: Boolean, callback?: (err: Error, validate: ValidateFunction) => any): PromiseLike<ValidateFunction>;
 -     /**
 -     * 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`.
 -     * @return {Ajv} this for method chaining
 -     */
 -     addSchema(schema: Array<object> | object, key?: string): Ajv;
 -     /**
 -     * 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
 -     * @return {Ajv} this for method chaining
 -     */
 -     addMetaSchema(schema: object, key?: string): Ajv;
 -     /**
 -     * Validate schema
 -     * @param {object|Boolean} schema schema to validate
 -     * @return {Boolean} true if schema is valid
 -     */
 -     validateSchema(schema: object | boolean): 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`). Returns undefined if keyRef can't be resolved to an existing schema.
 -     */
 -     getSchema(keyRef: string): ValidateFunction | undefined;
 -     /**
 -     * 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|Boolean} schemaKeyRef key, ref, pattern to match key/ref or schema object
 -     * @return {Ajv} this for method chaining
 -     */
 -     removeSchema(schemaKeyRef?: object | string | RegExp | boolean): Ajv;
 -     /**
 -     * 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)
 -     * @return {Ajv} this for method chaining
 -     */
 -     addFormat(name: string, format: FormatValidator | FormatDefinition): Ajv;
 -     /**
 -     * 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`.
 -     * @return {Ajv} this for method chaining
 -     */
 -     addKeyword(keyword: string, definition: KeywordDefinition): Ajv;
 -     /**
 -     * 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.
 -     * @return {Ajv} this for method chaining
 -     */
 -     removeKeyword(keyword: string): Ajv;
 -     /**
 -     * Validate keyword
 -     * @this  Ajv
 -     * @param {object} definition keyword definition object
 -     * @param {boolean} throwError true to throw exception if definition is invalid
 -     * @return {boolean} validation result
 -     */
 -     validateKeyword(definition: KeywordDefinition, throwError: boolean): boolean;
 -     /**
 -     * 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> | null, options?: ErrorsTextOptions): string;
 -     errors?: Array<ErrorObject> | null;
 -     _opts: Options;
 -   }
 - 
 -   interface CustomLogger {
 -     log(...args: any[]): any;
 -     warn(...args: any[]): any;
 -     error(...args: any[]): any;
 -   }
 - 
 -   interface ValidateFunction {
 -     (
 -       data: any,
 -       dataPath?: string,
 -       parentData?: object | Array<any>,
 -       parentDataProperty?: string | number,
 -       rootData?: object | Array<any>
 -     ): boolean | PromiseLike<any>;
 -     schema?: object | boolean;
 -     errors?: null | Array<ErrorObject>;
 -     refs?: object;
 -     refVal?: Array<any>;
 -     root?: ValidateFunction | object;
 -     $async?: true;
 -     source?: object;
 -   }
 - 
 -   interface Options {
 -     $data?: boolean;
 -     allErrors?: boolean;
 -     verbose?: boolean;
 -     jsonPointers?: boolean;
 -     uniqueItems?: boolean;
 -     unicode?: boolean;
 -     format?: false | string;
 -     formats?: object;
 -     keywords?: object;
 -     unknownFormats?: true | string[] | 'ignore';
 -     schemas?: Array<object> | object;
 -     schemaId?: '$id' | 'id' | 'auto';
 -     missingRefs?: true | 'ignore' | 'fail';
 -     extendRefs?: true | 'ignore' | 'fail';
 -     loadSchema?: (uri: string, cb?: (err: Error, schema: object) => void) => PromiseLike<object | boolean>;
 -     removeAdditional?: boolean | 'all' | 'failing';
 -     useDefaults?: boolean | 'empty' | 'shared';
 -     coerceTypes?: boolean | 'array';
 -     strictDefaults?: boolean | 'log';
 -     strictKeywords?: boolean | 'log';
 -     strictNumbers?: boolean;
 -     async?: boolean | string;
 -     transpile?: string | ((code: string) => string);
 -     meta?: boolean | object;
 -     validateSchema?: boolean | 'log';
 -     addUsedSchema?: boolean;
 -     inlineRefs?: boolean | number;
 -     passContext?: boolean;
 -     loopRequired?: number;
 -     ownProperties?: boolean;
 -     multipleOfPrecision?: boolean | number;
 -     errorDataPath?: string,
 -     messages?: boolean;
 -     sourceCode?: boolean;
 -     processCode?: (code: string, schema: object) => string;
 -     cache?: object;
 -     logger?: CustomLogger | false;
 -     nullable?: boolean;
 -     serialize?: ((schema: object | boolean) => any) | false;
 -   }
 - 
 -   type FormatValidator = string | RegExp | ((data: string) => boolean | PromiseLike<any>);
 -   type NumberFormatValidator = ((data: number) => boolean | PromiseLike<any>);
 - 
 -   interface NumberFormatDefinition {
 -     type: "number",
 -     validate: NumberFormatValidator;
 -     compare?: (data1: number, data2: number) => number;
 -     async?: boolean;
 -   }
 - 
 -   interface StringFormatDefinition {
 -     type?: "string",
 -     validate: FormatValidator;
 -     compare?: (data1: string, data2: string) => number;
 -     async?: boolean;
 -   }
 - 
 -   type FormatDefinition = NumberFormatDefinition | StringFormatDefinition;
 - 
 -   interface KeywordDefinition {
 -     type?: string | Array<string>;
 -     async?: boolean;
 -     $data?: boolean;
 -     errors?: boolean | string;
 -     metaSchema?: object;
 -     // schema: false makes validate not to expect schema (ValidateFunction)
 -     schema?: boolean;
 -     statements?: boolean;
 -     dependencies?: Array<string>;
 -     modifying?: boolean;
 -     valid?: boolean;
 -     // one and only one of the following properties should be present
 -     validate?: SchemaValidateFunction | ValidateFunction;
 -     compile?: (schema: any, parentSchema: object, it: CompilationContext) => ValidateFunction;
 -     macro?: (schema: any, parentSchema: object, it: CompilationContext) => object | boolean;
 -     inline?: (it: CompilationContext, keyword: string, schema: any, parentSchema: object) => string;
 -   }
 - 
 -   interface CompilationContext {
 -     level: number;
 -     dataLevel: number;
 -     dataPathArr: string[];
 -     schema: any;
 -     schemaPath: string;
 -     baseId: string;
 -     async: boolean;
 -     opts: Options;
 -     formats: {
 -       [index: string]: FormatDefinition | undefined;
 -     };
 -     keywords: {
 -       [index: string]: KeywordDefinition | undefined;
 -     };
 -     compositeRule: boolean;
 -     validate: (schema: object) => boolean;
 -     util: {
 -       copy(obj: any, target?: any): any;
 -       toHash(source: string[]): { [index: string]: true | undefined };
 -       equal(obj: any, target: any): boolean;
 -       getProperty(str: string): string;
 -       schemaHasRules(schema: object, rules: any): string;
 -       escapeQuotes(str: string): string;
 -       toQuotedString(str: string): string;
 -       getData(jsonPointer: string, dataLevel: number, paths: string[]): string;
 -       escapeJsonPointer(str: string): string;
 -       unescapeJsonPointer(str: string): string;
 -       escapeFragment(str: string): string;
 -       unescapeFragment(str: string): string;
 -     };
 -     self: Ajv;
 -   }
 - 
 -   interface SchemaValidateFunction {
 -     (
 -       schema: any,
 -       data: any,
 -       parentSchema?: object,
 -       dataPath?: string,
 -       parentData?: object | Array<any>,
 -       parentDataProperty?: string | number,
 -       rootData?: object | Array<any>
 -     ): boolean | PromiseLike<any>;
 -     errors?: Array<ErrorObject>;
 -   }
 - 
 -   interface ErrorsTextOptions {
 -     separator?: string;
 -     dataVar?: string;
 -   }
 - 
 -   interface ErrorObject {
 -     keyword: string;
 -     dataPath: string;
 -     schemaPath: string;
 -     params: ErrorParameters;
 -     // Added to validation errors of propertyNames keyword schema
 -     propertyName?: string;
 -     // Excluded if messages set to false.
 -     message?: string;
 -     // These are added with the `verbose` option.
 -     schema?: any;
 -     parentSchema?: object;
 -     data?: any;
 -   }
 - 
 -   type ErrorParameters = RefParams | LimitParams | AdditionalPropertiesParams |
 -     DependenciesParams | FormatParams | ComparisonParams |
 -     MultipleOfParams | PatternParams | RequiredParams |
 -     TypeParams | UniqueItemsParams | CustomParams |
 -     PatternRequiredParams | PropertyNamesParams |
 -     IfParams | 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 PatternRequiredParams {
 -     missingPattern: string;
 -   }
 - 
 -   interface PropertyNamesParams {
 -     propertyName: string;
 -   }
 - 
 -   interface IfParams {
 -     failingKeyword: string;
 -   }
 - 
 -   interface SwitchParams {
 -     caseIndex: number;
 -   }
 - 
 -   interface NoParams { }
 - 
 -   interface EnumParams {
 -     allowedValues: Array<any>;
 -   }
 - }
 - 
 - export = ajv;
 
 
  |