import { type FirstLetterLowercase, type FirstLetterUppercase, type PartialWithUndefined } from '@augment-vir/core'; /** * The different string cases. * * @category String * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export declare enum StringCase { Upper = "upper", Lower = "lower" } /** * Options for casing functions in `@augment-vir/common`. * * @category String * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export type CasingOptions = { /** * Capitalize the first letter of the string. * * @default StringCase.Lower */ firstLetterCase: StringCase; }; /** * Default options for {@link CasingOptions}. * * @category String * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export declare const defaultCasingOptions: Required; /** * Convert the first letter of a string to either lower or uppercase. * * @category String * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export type FirstLetterCase = SpecificCase extends StringCase.Lower ? FirstLetterLowercase : FirstLetterUppercase; /** * Set the first letter of the input to uppercase or lowercase. * * @category String * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export declare function setFirstLetterCasing(input: Value, stringCase: SpecificCase): FirstLetterCase; /** * Indicates whether the given string has different lower and upper case variants. (Some strings * don't, such as all numbers or `'√'`.) * * @category String * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export declare function hasCase(input: string): boolean; /** * Options for {@link isCase}. * * @category String * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export type IsCaseOptions = { /** * Set to `true` to fail on characters that don't have different upper and lower case versions * (such as punctuation, like `'.'` or symbols, like `'√'`). * * @default false */ rejectNoCaseCharacters: boolean; }; /** * Checks if the given string is exclusively of the specific case. * * Note that some characters have no casing, such as punctuation (they have no difference between * upper and lower casings). By default, those letters always return `true` for this function, * regardless of which `caseType` is provided. To instead return `false` for any such characters, * pass in an options object and set `rejectNoCaseCharacters` to true. * * @category String * @category Package : @augment-vir/common * @package [`@augment-vir/common`](https://www.npmjs.com/package/@augment-vir/common) */ export declare function isCase(input: string, caseType: StringCase, options?: PartialWithUndefined): boolean;