import type { PropOptions, VueProp, VueTypeDef, VueTypeValidateDef, WrappedFn } from './types'; type PlainObject = Record; export declare const isPlainObject: (obj: any) => obj is PlainObject; declare let warn: (msg: string) => void; export { warn }; export declare const hasOwn: (v: PropertyKey) => boolean; export declare const isInteger: (number: unknown) => boolean; export declare function has(obj: T, prop: U): boolean; export declare function toValidateType(name: string, obj: PropOptions): VueTypeValidateDef; export declare function toType(name: string, obj: PropOptions): VueTypeDef; export declare function bindTo(fn: (...args: any[]) => any, ctx: any): WrappedFn; export declare function isVueTypeDef(value: any, name?: string): value is VueTypeDef | VueTypeValidateDef; export declare function isComplexType(value: any): value is VueProp; export declare function getType(fn: VueProp | (() => any) | (new (...args: any[]) => any)): string; export declare function getNativeType(value: any): string; export declare function validateType(type: T, value: U, silent?: boolean): string | boolean; export declare function indent(string: string): string;