# Installation
> `npm install --save @types/folder-hash`

# Summary
This package contains type definitions for folder-hash (https://github.com/marc136/node-folder-hash#readme).

# Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/folder-hash.
## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/folder-hash/index.d.ts)
````ts
export type PathGlobFunction = () => string[];

export interface FolderAndFileOptions {
    exclude?: string[] | PathGlobFunction | undefined;
    include?: string[] | PathGlobFunction | undefined;
    matchBasename?: boolean | undefined;
    matchPath?: boolean | undefined;
    ignoreBasename?: boolean | undefined;
    ignoreRootName?: boolean | undefined;
}

export type SymbolicLinkOptions = Omit<FolderAndFileOptions, "exclude" | "include"> & {
    include?: boolean | undefined;
    ignoreTargetPath?: boolean | undefined;
    ignoreTargetContent?: boolean | undefined;
    ignoreTargetContentAfterError?: boolean | undefined;
};
export interface HashElementOptions {
    // See crypto.getHashes() for options.
    // Defaults to 'sha1'.
    algo?: string | undefined;
    // Defaults to 'base64'
    encoding?: "base64" | "base64url" | "hex" | "binary" | undefined;
    files?: FolderAndFileOptions | undefined;
    folders?: FolderAndFileOptions | undefined;
    symbolicLinks?: SymbolicLinkOptions | undefined;
}

export interface HashElementNode {
    name: string;
    hash: string;
    children: HashElementNode[];
}

/**
 * @param name element name or an element's path
 * @param options Options object
 */
export function hashElement(name: string, options?: HashElementOptions): Promise<HashElementNode>;
/**
 * @param name element name or an element's path
 * @param dir directory that contains the element (generated from name if omitted)
 * @param options Options object
 */
export function hashElement(name: string, dir?: string, options?: HashElementOptions): Promise<HashElementNode>;
/**
 * @param name element name or an element's path
 * @param dir directory that contains the element (generated from name if omitted)
 * @param options Options object
 * @param callback Error-first callback function
 */
export function hashElement(
    name: string,
    dir?: string,
    options?: HashElementOptions,
    callback?: (error?: Error, result?: HashElementNode) => any,
): void;

export const defaults: HashElementOptions;

````

### Additional Details
 * Last updated: Tue, 07 Nov 2023 03:09:37 GMT
 * Dependencies: none

# Credits
These definitions were written by [Kevin Brown](https://github.com/thekevinbrown), [Piotr Błażejewicz](https://github.com/peterblazejewicz), and [Marc Walter](https://github.com/marc136).
