import type { DeepReadonly, ListWithoutFirst } from './types';
type _BoundFn<T, Args extends any[]> = Args extends [] ? T extends (this: infer ThisType, ...args: [...infer RestArgs]) => infer ReturnType ? (thisValue: ThisType, ...args: RestArgs) => ReturnType : never : T extends (this: Args[0], ...args: [...ListWithoutFirst<Args>, ...infer RestArgs]) => infer ReturnType ? (...args: RestArgs) => ReturnType : never;
export declare const fn: <T, Args extends any[]>(func: T, ...args: Args) => _BoundFn<T, Args>;
export declare const asyncNoop: () => Promise<void>;
export declare const identity: <T>(value?: T) => T | undefined;
export declare const noop: () => void;
export declare const unreachable: (value: never) => never;
export declare const toStringTag: (value?: any) => string;
export declare const deepFreeze: <T extends object>(obj: T) => DeepReadonly<T>;
export {};
//# sourceMappingURL=common.d.ts.map