import { DeepPartial } from "ts-essentials";
import { FinalUserConfig } from "./config.mts";
import { AbsolutePath } from "./path.mts";
export declare function isObject(value: unknown): value is Record<string, any>;
export declare enum Locale {
  "zh_cn" = "zh_cn",
}
export declare const filterNullable: <T>(list: T[], isNullable?: ((value: T) => boolean) | undefined) => NonNullable<T>[];
export declare function arraify<T>(target: T | T[]): T[];
export type Result<S, E = S> = {
  success: true;
  content: S;
  message?: string;
} | {
  success: false;
  content?: E;
  message: string;
};
export type SafeObj<T> = { [k in keyof T as `$${string & k}`]-?: () => T[k] extends object ? SafeObj<T[k]> : NonNullable<T[k]> };
export declare const safeObj: <T extends object>(obj: T, name: string, config?: {
  errorMsgFormat?: ((objName: string, key: string) => string) | undefined;
}) => SafeObj<T>;
export declare const sleep: (ms: number) => Promise<unknown>;
export declare const useRoot: (params: {
  finalUserConfig: FinalUserConfig;
}) => AbsolutePath;
export declare const unSafeFunctionWrapper: <T extends (...args: any) => any, R extends ReturnType<T>, P extends Parameters<T>>(func: T) => (...args: P) => DeepPartial<R> | undefined;