import { GlobOptions, Path } from "glob";
import { AssetGlob } from "@stryke/types/file";

//#region src/list-files.d.ts
type ListOptions = GlobOptions;
type InferListReturnType<TOptions extends GlobOptions> = TOptions["withFileTypes"] extends true ? Path[] : string[];
/**
 * A files and directories listing helper function
 *
 * @param filesGlob - A glob pattern to match files
 * @returns A list of file paths
 */
declare function list<TOptions extends ListOptions>(filesGlob: string | Omit<AssetGlob, "output">, options?: TOptions): Promise<InferListReturnType<TOptions>>;
/**
 * A synchronous files and directories listing helper function
 *
 * @param filesGlob - A glob pattern to match files
 * @returns A list of file paths
 */
declare function listSync<TOptions extends ListOptions>(filesGlob: string | Omit<AssetGlob, "output">, options?: TOptions): InferListReturnType<TOptions>;
/**
 * A file listing helper function
 *
 * @param filesGlob - A glob pattern to match files
 * @returns A list of file paths
 */
declare function listFiles<TOptions extends ListOptions>(filesGlob: string | Omit<AssetGlob, "output">, options?: TOptions): Promise<InferListReturnType<TOptions>>;
/**
 * A synchronous file listing helper function
 *
 * @param filesGlob - A glob pattern to match files
 * @returns A list of file paths
 */
declare function listFilesSync<TOptions extends ListOptions>(filesGlob: string | Omit<AssetGlob, "output">, options?: TOptions): InferListReturnType<TOptions>;
/**
 * A directories listing helper function
 *
 * @param filesGlob - A glob pattern to match files
 * @returns A list of file paths
 */
declare function listDirectories<TOptions extends ListOptions>(filesGlob: string | Omit<AssetGlob, "output">, options?: TOptions): Promise<InferListReturnType<TOptions>>;
/**
 * A synchronous directories listing helper function
 *
 * @param filesGlob - A glob pattern to match files
 * @returns A list of file paths
 */
declare function listDirectoriesSync<TOptions extends ListOptions>(filesGlob: string | Omit<AssetGlob, "output">, options?: TOptions): InferListReturnType<TOptions>;
//#endregion
export { InferListReturnType, ListOptions, list, listDirectories, listDirectoriesSync, listFiles, listFilesSync, listSync };
//# sourceMappingURL=list-files.d.mts.map