import { type ChangeArrayCase, type DetectCaseNameFromArray } from "./array.js"; import type { CaseName } from "./cases.js"; import { type ChangeKeysCase, type DetectCaseNameFromKeys } from "./object.js"; import { type ChangeStringCase, type DetectCaseNameFromString } from "./string.js"; import type { Writeable } from "./utils.js"; /** Attempts to identify the common CaseName of a provided type. */ export type DetectCaseName = Value extends string ? DetectCaseNameFromString : Value extends readonly unknown[] ? DetectCaseNameFromArray> : Value extends object ? DetectCaseNameFromKeys : undefined; /** Attempts to identify the common CaseName of a provided value. */ export declare function detectCaseName(value: Value): DetectCaseName; /** Changes the case of a provided type. */ export type ChangeCase = Value extends string ? ChangeStringCase : Value extends readonly unknown[] ? ChangeArrayCase, ToCase, FromCase> : Value extends { [key: string]: unknown; } ? ChangeKeysCase : Value; /** Changes the case of a provided value. */ export declare function caseChanger(toCase: ToCase): (value: Value) => DetectCaseName extends infer FromCase extends CaseName ? ChangeCase : Value; /** Changes the case of a provided value. */ export declare function caseChanger(toCase: ToCase, fromCase: FromCase): (value: Value) => ChangeCase; /** Changes the case of a provided value. */ export declare function changeCase(value: Value, toCase: ToCase): DetectCaseName extends infer FromCase extends CaseName ? ChangeCase : Value; /** Changes the case of a provided value. */ export declare function changeCase(value: Value, toCase: ToCase, fromCase: FromCase): ChangeCase; //# sourceMappingURL=unknown.d.ts.map