/**
 * Check if the given string starts and ends with the given letter
 */
export declare function startAndEndsWith(str: string, letter: string): boolean;
/**
 * Whether every character of `needle` appears in `hay` in order (a subsequence / fuzzy match).
 */
export declare function isSubsequence(needle: string, hay: string): boolean;
/**
 * The `candidates` that start with `needle`, or -- if none do -- those that contain it as a
 * {@link isSubsequence|subsequence} (case-insensitive). `needle` itself is never returned.
 */
export declare function matchByPrefixOrSubsequence(candidates: readonly string[], needle: string): string[];
/**
 * Removes all whitespace in the given string
 */
export declare function withoutWhitespace(output: string): string;
/**
 * Find the longest common prefix in an array of strings
 */
export declare function longestCommonPrefix(strings: string[]): string;
/**
 * Join a list of strings, but with special handling for the last element/scenarios in which the array contains exactly two elements.
 * The goal is to create (partial) sentences like `a, b, and c` or `a and b`.
 */
export declare function joinWithLast(strs: readonly string[], { join, last, joinTwo }?: {
    join?: string;
    last?: string;
    joinTwo?: string;
}): string;
/** Check if the given string looks like a remote URL (http/https/ftp/ftps/s3/gs). */
export declare function isUrl(p: string): boolean;
/**
 * If `s` is a `file://` URI, return the local filesystem path it refers to.
 * Returns `undefined` for any other string.
 */
export declare function fileUrlToPath(s: string): string | undefined;
/**
 * Check if the given path is an absolute path.
 */
export declare function isAbsolutePath(p: string, regex: RegExp | undefined): boolean;
/** collect '-' at the start until '[' or '(' is reached, then drop the same from the end if present otherwise return the value as is */
export declare function dropRawStringSurround(value: string): string;
