/** Function that does nothing */
export declare const noop: AnyToVoidFnSignature;
/** Function that returns the first argument */
export declare const identity: <T>(arg: T) => T;
export type NoopFnSignature = () => void;
export type BivariantCallback<T> = {
    bivarianceHack(arg: T): void;
}['bivarianceHack'];
export type MaybeArgFn<T> = NoopFnSignature | BivariantCallback<T>;
export type AnyToVoidFnSignature = (...args: any[]) => void;
export type AnyToAnyFnSignature = (...args: any[]) => any;
export type MethodTypedDecorator<T> = (target: any, property: string, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void;
export type Predicate<T> = (el: T) => boolean;
/**
 * Property provider function
 * @param that - (equal to `this` context) host or context
 */
export type PropertyProvider<T, Host = any> = (this: Host, that: Host) => T;
export type ValueOrProvider<PropType, Host = any> = PropType | PropertyProvider<PropType, Host>;
/** Resolves {@link PropertyProvider} function to the value */
export declare const resolveProperty: <T, Host = unknown>(val: T | PropertyProvider<T, Host>, origin: Host) => T;
