// Generated by dts-bundle-generator v9.5.1

type ValidatorFnWithTransformCb<T> = (arg: unknown, cb?: (transformedValue: T, isValid?: boolean) => void) => arg is T;
/******************************************************************************
							   Functions
******************************************************************************/
export declare function nonNullable<T>(cb: (arg: unknown) => arg is T): (arg: unknown) => arg is NonNullable<T>;
export declare function makeOptional<T>(cb: (arg: unknown) => arg is T): (arg: unknown) => arg is T | undefined;
export declare function makeNullable<T>(cb: (arg: unknown) => arg is T): (arg: unknown) => arg is T | null;
export declare function makeNullish<T>(cb: (arg: unknown) => arg is T): (arg: unknown) => arg is T | null | undefined;
/**
 * This returns a function which transforms a value before validating it.
 * The returned function calls a callback which provides the returned value
 * and
 */
export declare function transform<T extends S, S = T>(transformFn: (arg: unknown) => S, validate: (arg: unknown) => arg is T): ValidatorFnWithTransformCb<T>;
export declare function parseBoolean(arg: unknown, errMsg?: string): boolean;
export declare function parseOptionalBoolean(arg: unknown): boolean | undefined;
export declare function parseNullableBoolean(arg: unknown): boolean | null;
export declare function parseNullishBoolean(arg: unknown): boolean | null | undefined;
export declare function parseJson<T>(arg: unknown): T;
export declare function parseOptionalJson<T>(arg: unknown): T | undefined;
export declare function parseNullableJson<T>(arg: unknown): T | null;
export declare function parseNullishJson<T>(arg: unknown): T | null | undefined;
type TestObjectFn<T> = (arg: T, onError?: OnErrorCallback, valueTestedCb?: (value: T) => void) => arg is T;
export type Schema<T = unknown> = {
	[K in keyof T]: T[K] extends NonNullable<object> ? Schema<T[K]> | ValidatorFn<T[K]> : ValidatorFn<T[K]>;
};
type ValidatorFn<T> = ((arg: unknown) => arg is T) | ValidatorFnWithTransformCb<T> | TestObjectFn<T>;
export type ParseError = {
	info: string;
	functionName: string;
	value: unknown;
	caught?: string;
} & ({
	key: string;
	keyPath?: never;
} | {
	keyPath: string[];
	key?: never;
});
export type OnErrorCallback = (errors: ParseError[]) => void;
type CollpaseType<T> = T extends unknown ? T : never;
type ValidatorFn$1<T> = (arg: unknown) => arg is T;
type ResolveArray<T, A extends boolean> = A extends true ? T[] : T;
type ResolveNullables<T, O extends boolean, N extends boolean> = (O extends true ? undefined : never) | (N extends true ? null : never) | T;
type CollapseType<T> = {
	[K in keyof T]: T[K];
} & {};
type InferTypeFromSchema<S> = {
	[K in keyof S]: S[K] extends ValidatorFn$1<infer R> ? R : S[K] extends object ? CollapseType<InferTypeFromSchema<S[K]>> : never;
};
type InferredReturnValue<S, O extends boolean, N extends boolean, A extends boolean> = ResolveNullables<ResolveArray<CollapseType<InferTypeFromSchema<S>>, A>, O, N>;
type TypedReturnValue<T, O extends boolean, N extends boolean, A extends boolean> = ResolveNullables<ResolveArray<T, A>, O, N>;
/******************************************************************************
							  parseObject
******************************************************************************/
export declare function parseObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => InferredReturnValue<S, false, false, false>;
export declare function parseObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, false, false, false>;
export declare function parseOptionalObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, true, false, false>>;
export declare function parseOptionalObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, true, false, false>;
export declare function parseNullableObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, false, true, false>>;
export declare function parseNullableObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, false, true, false>;
export declare function parseNullishObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, true, true, false>>;
export declare function parseNullishObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, true, true, false>;
export declare function parseObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => InferredReturnValue<S, false, false, true>;
export declare function parseObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, false, false, true>;
export declare function parseOptionalObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, true, false, true>>;
export declare function parseOptionalObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, true, false, true>;
export declare function parseNullableObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, false, true, true>>;
export declare function parseNullableObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, false, true, true>;
export declare function parseNullishObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, true, true, true>>;
export declare function parseNullishObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, true, true, true>;
/******************************************************************************
						  strictParseObject
******************************************************************************/
export declare function strictParseObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => InferredReturnValue<S, false, false, false>;
export declare function strictParseObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, false, false, false>;
export declare function strictParseOptionalObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, true, false, false>>;
export declare function strictParseOptionalObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, true, false, false>;
export declare function strictParseNullableObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, false, true, false>>;
export declare function strictParseNullableObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, false, true, false>;
export declare function strictParseNullishObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, true, true, false>>;
export declare function strictParseNullishObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, true, true, false>;
export declare function strictParseObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => InferredReturnValue<S, false, false, true>;
export declare function strictParseObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, false, false, true>;
export declare function strictParseOptionalObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, true, false, true>>;
export declare function strictParseOptionalObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, true, false, true>;
export declare function strictParseNullableObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, false, true, true>>;
export declare function strictParseNullableObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, false, true, true>;
export declare function strictParseNullishObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, true, true, true>>;
export declare function strictParseNullishObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, true, true, true>;
/******************************************************************************
						   looseParseObject
******************************************************************************/
export declare function looseParseObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => InferredReturnValue<S, false, false, false>;
export declare function looseParseObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, false, false, false>;
export declare function looseParseOptionalObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, true, false, false>>;
export declare function looseParseOptionalObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, true, false, false>;
export declare function looseParseNullableObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, false, true, false>>;
export declare function looseParseNullableObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, false, true, false>;
export declare function looseParseNullishObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, true, true, false>>;
export declare function looseParseNullishObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, true, true, false>;
export declare function looseParseObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => InferredReturnValue<S, false, false, true>;
export declare function looseParseObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, false, false, true>;
export declare function looseParseOptionalObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, true, false, true>>;
export declare function looseParseOptionalObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, true, false, true>;
export declare function looseParseNullableObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, false, true, true>>;
export declare function looseParseNullableObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, false, true, true>;
export declare function looseParseNullishObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => CollpaseType<InferredReturnValue<S, true, true, true>>;
export declare function looseParseNullishObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => TypedReturnValue<T, true, true, true>;
type CollpaseType$1<T> = T extends unknown ? T : never;
/******************************************************************************
							  testObject
******************************************************************************/
export declare function testObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is InferredReturnValue<S, false, false, false>;
export declare function testObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, false, false, false>;
export declare function testOptionalObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, true, false, false>>;
export declare function testOptionalObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, true, false, false>;
export declare function testNullableObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, false, true, false>>;
export declare function testNullableObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, false, true, false>;
export declare function testNullishObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, true, true, false>>;
export declare function testNullishObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, true, true, false>;
export declare function testObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is InferredReturnValue<S, false, false, true>;
export declare function testObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, false, false, true>;
export declare function testOptionalObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, true, false, true>>;
export declare function testOptionalObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, true, false, true>;
export declare function testNullableObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, false, true, true>>;
export declare function testNullableObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, false, true, true>;
export declare function testNullishObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, true, true, true>>;
export declare function testNullishObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, true, true, true>;
/******************************************************************************
						  strictTestObject
******************************************************************************/
export declare function strictTestObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is InferredReturnValue<S, false, false, false>;
export declare function strictTestObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, false, false, false>;
export declare function strictTestOptionalObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, true, false, false>>;
export declare function strictTestOptionalObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, true, false, false>;
export declare function strictTestNullableObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, false, true, false>>;
export declare function strictTestNullableObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, false, true, false>;
export declare function strictTestNullishObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, true, true, false>>;
export declare function strictTestNullishObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, true, true, false>;
export declare function strictTestObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is InferredReturnValue<S, false, false, true>;
export declare function strictTestObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, false, false, true>;
export declare function strictTestOptionalObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, true, false, true>>;
export declare function strictTestOptionalObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, true, false, true>;
export declare function strictTestNullableObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, false, true, true>>;
export declare function strictTestNullableObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, false, true, true>;
export declare function strictTestNullishObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, true, true, true>>;
export declare function strictTestNullishObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, true, true, true>;
/******************************************************************************
						   looseTestObject
******************************************************************************/
export declare function looseTestObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is InferredReturnValue<S, false, false, false>;
export declare function looseTestObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, false, false, false>;
export declare function looseTestOptionalObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, true, false, false>>;
export declare function looseTestOptionalObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, true, false, false>;
export declare function looseTestNullableObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, false, true, false>>;
export declare function looseTestNullableObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, false, true, false>;
export declare function looseTestNullishObject<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, true, true, false>>;
export declare function looseTestNullishObject<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, true, true, false>;
export declare function looseTestObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is InferredReturnValue<S, false, false, true>;
export declare function looseTestObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, false, false, true>;
export declare function looseTestOptionalObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, true, false, true>>;
export declare function looseTestOptionalObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<TypedReturnValue<T, true, false, true>>;
export declare function looseTestNullableObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, false, true, true>>;
export declare function looseTestNullableObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, false, true, true>;
export declare function looseTestNullishObjectArray<S extends object>(schema: S, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is CollpaseType$1<InferredReturnValue<S, true, true, true>>;
export declare function looseTestNullishObjectArray<T>(schema: Schema<T>, onError?: OnErrorCallback): (arg: unknown, onError?: OnErrorCallback) => arg is TypedReturnValue<T, true, true, true>;
/******************************************************************************
							  Functions
******************************************************************************/
/**
 * Set than an array is a parse error array.
 */
export declare function setIsParseErrorArray(array: ParseError[]): ParseError[];

export {};
