//#region src/fs/clean.d.ts
declare function clean(path: string): Promise<void>;
//#endregion
//#region src/fs/exists.d.ts
declare function exists(path: string): Promise<boolean>;
//#endregion
//#region src/fs/read.d.ts
declare function read(path: string): Promise<string>;
declare function readSync(path: string): string;
//#endregion
//#region src/fs/unlink.d.ts
declare function unlink(path: string): Promise<void>;
//#endregion
//#region src/fs/utils.d.ts
declare function getRelativePath(rootDir?: string | null, filePath?: string | null, platform?: 'windows' | 'mac' | 'linux'): string;
//#endregion
//#region src/fs/write.d.ts
type Options = {
  sanity?: boolean;
};
declare function write(path: string, data: string, options?: Options): Promise<string | undefined>;
type BasePath<T extends string = string> = `${T}/`;
type Import = {
  /**
   * Import name to be used
   * @example ["useState"]
   * @example "React"
   */
  name: string | Array<string | {
    propertyName: string;
    name?: string;
  }>;
  /**
   * Path for the import
   * @example '@kubb/core'
   */
  path: string;
  /**
   * Add `type` prefix to the import, this will result in: `import type { Type } from './path'`.
   */
  isTypeOnly?: boolean;
  isNameSpace?: boolean;
  /**
   * When root is set it will get the path with relative getRelativePath(root, path).
   */
  root?: string;
};
type Source = {
  name?: string;
  value?: string;
  isTypeOnly?: boolean;
  /**
   * Has const or type 'export'
   * @default false
   */
  isExportable?: boolean;
  /**
   * When set, barrel generation will add this
   * @default false
   */
  isIndexable?: boolean;
};
type Export = {
  /**
   * Export name to be used.
   * @example ["useState"]
   * @example "React"
   */
  name?: string | Array<string>;
  /**
   * Path for the import.
   * @example '@kubb/core'
   */
  path: string;
  /**
   * Add `type` prefix to the export, this will result in: `export type { Type } from './path'`.
   */
  isTypeOnly?: boolean;
  /**
   * Make it possible to override the name, this will result in: `export * as aliasName from './path'`.
   */
  asAlias?: boolean;
};
type Extname = '.ts' | '.js' | '.tsx' | '.json' | `.${string}`;
type Mode = 'single' | 'split';
/**
 * Name to be used to dynamicly create the baseName(based on input.path)
 * Based on UNIX basename
 * @link https://nodejs.org/api/path.html#pathbasenamepath-suffix
 */
type BaseName = `${string}.${string}`;
/**
 * Path will be full qualified path to a specified file
 */
type Path = string;
type AdvancedPath<T extends BaseName = BaseName> = `${BasePath}${T}`;
type OptionalPath = Path | undefined | null;
type File<TMeta extends object = object> = {
  /**
   * Name to be used to create the path
   * Based on UNIX basename, `${name}.extname`
   * @link https://nodejs.org/api/path.html#pathbasenamepath-suffix
   */
  baseName: BaseName;
  /**
   * Path will be full qualified path to a specified file
   */
  path: AdvancedPath<BaseName> | Path;
  sources: Array<Source>;
  imports?: Array<Import>;
  exports?: Array<Export>;
  /**
   * Use extra meta, this is getting used to generate the barrel/index files.
   */
  meta?: TMeta;
  banner?: string;
  footer?: string;
};
type ResolvedImport = Import;
type ResolvedExport = Export;
type ResolvedFile<TMeta extends object = object> = File<TMeta> & {
  /**
   * @default object-hash
   */
  id: string;
  /**
   * Contains the first part of the baseName, generated based on baseName
   * @link  https://nodejs.org/api/path.html#pathformatpathobject
   */
  name: string;
  extname: Extname;
  imports: Array<ResolvedImport>;
  exports: Array<ResolvedExport>;
};
//#endregion
//#region src/fs/index.d.ts
declare function trimExtName(text: string): string;
//#endregion
export { BaseName, Export, Extname, File, Import, Mode, OptionalPath, Path, ResolvedExport, ResolvedFile, ResolvedImport, clean, exists, getRelativePath, read, readSync, trimExtName, types_d_exports, unlink, write };
//# sourceMappingURL=index-CGJ3tdk-.d.ts.map