/// <reference types="node" />
/**
 * Create return value once.
 *
 * @param create Create function.
 * @returns Returned value.
 */
export declare function once<T>(create: () => T): () => T;
/**
 * Trim dot flash from head of path.
 *
 * @param path Path string.
 * @returns Trimmed path.
 */
export declare function trimDotSlash(path: string): string;
/**
 * Find path relative from base, if base matches.
 *
 * @param path Path to match against.
 * @param start Search start.
 * @param nocase Match case-insensitive.
 * @returns Returns path, or null.
 */
export declare function pathRelativeBase(path: string, start: string, nocase?: boolean): string | null;
/**
 * Same as pathRelativeBase, but retuns true on a match, else false.
 *
 * @param path Path to match against.
 * @param start Search start.
 * @param nocase Match case-insensitive.
 * @returns Returns true on match, else false.
 */
export declare function pathRelativeBaseMatch(path: string, start: string, nocase?: boolean): boolean;
/**
 * Trim a file extenion.
 *
 * @param path File path.
 * @param ext File extension.
 * @param nocase Match case-insensitive.
 * @returns Path without file extension.
 */
export declare function trimExtension(path: string, ext: string, nocase?: boolean): string;
/**
 * Get ArrayBuffer from Buffer.
 *
 * @param buffer Buffer instance.
 * @returns ArrayBuffer copy.
 */
export declare function bufferToArrayBuffer(buffer: Readonly<Buffer>): ArrayBuffer;
/**
 * Get launcher data for an ID.
 *
 * @param id Laucher ID.
 * @returns Launcher data.
 */
export declare function launcher(id: string): Promise<Buffer>;
