export declare type AnyType = any;
export declare type Primitive = string | number | symbol | boolean | null | undefined | void | bigint;
export declare type FunctionType<T = AnyType, A extends Array<AnyType> = AnyType> = (...args: A) => T;
export declare type ObjectProperty = string | number | symbol;
export declare type ResolvedValue<T> = T extends PromiseLike<infer R> ? R : T;
declare type OptionalKeys<T> = Exclude<{
    [K in keyof T]: undefined extends T[K] ? AnyType extends T[K] ? never : K : never;
}[keyof T], undefined>;
declare type RequiredKeys<T> = Exclude<keyof T, OptionalKeys<T>>;
export declare type AllowPartial<T> = T extends object ? OptionalKeys<T> extends never ? {
    [K in RequiredKeys<T>]: AllowPartial<T[K]>;
} : {
    [K in RequiredKeys<T>]: AllowPartial<Exclude<T[K], undefined>>;
} & {
    [K in OptionalKeys<T>]?: AllowPartial<T[K]>;
} : T;
export declare function isPromiseLike(value: unknown): value is PromiseLike<AnyType>;
export {};
