import { ObjectTypedSchema } from '../core/ObjectTypedSchema';
import { OneOf, OneOfConfigMessage } from '../types/OneOfTypes';
import { SchemaMap } from '../types/SchemaMap';
import { NullableType } from '../types/types';
export declare class ObjectSchema = object, Final = any> extends ObjectTypedSchema {
protected message: string;
protected rule: (value: any) => boolean;
protected clone(): ObjectSchema;
/**
* Extends current schema object
*/
extend(schemas: SchemaMap): ObjectSchema;
/**
* OneOf makes the validation only false when all schema keys are false (have errors in them)
* This is exclusive to oneOf schema, all other validation still will take place,
*/
oneOf(oneOfKey: OneOf, oneOfConfig?: OneOfConfigMessage): this;
oneOf(oneOfKey: Key[], schema: SchemaMap[Key], oneOfConfig?: OneOfConfigMessage): this;
}
export declare const object: (schemas?: SchemaMap, message?: string) => ObjectSchema;